x86/realmode: Remove trampoline_status
There is no reader of trampoline_status, it's only written.
It turns out that after commit ce4b1b1650
("x86/smpboot: Initialize
secondary CPU only if master CPU will wait for it"), trampoline_status is
not needed any more.
Signed-off-by: Pingfan Liu <kernelfans@gmail.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lkml.kernel.org/r/1563266424-3472-1-git-send-email-kernelfans@gmail.com
This commit is contained in:
parent
5f9e832c13
commit
6973210242
|
@ -20,7 +20,6 @@ struct real_mode_header {
|
||||||
u32 ro_end;
|
u32 ro_end;
|
||||||
/* SMP trampoline */
|
/* SMP trampoline */
|
||||||
u32 trampoline_start;
|
u32 trampoline_start;
|
||||||
u32 trampoline_status;
|
|
||||||
u32 trampoline_header;
|
u32 trampoline_header;
|
||||||
#ifdef CONFIG_X86_64
|
#ifdef CONFIG_X86_64
|
||||||
u32 trampoline_pgd;
|
u32 trampoline_pgd;
|
||||||
|
|
|
@ -1023,8 +1023,6 @@ int common_cpu_up(unsigned int cpu, struct task_struct *idle)
|
||||||
static int do_boot_cpu(int apicid, int cpu, struct task_struct *idle,
|
static int do_boot_cpu(int apicid, int cpu, struct task_struct *idle,
|
||||||
int *cpu0_nmi_registered)
|
int *cpu0_nmi_registered)
|
||||||
{
|
{
|
||||||
volatile u32 *trampoline_status =
|
|
||||||
(volatile u32 *) __va(real_mode_header->trampoline_status);
|
|
||||||
/* start_ip had better be page-aligned! */
|
/* start_ip had better be page-aligned! */
|
||||||
unsigned long start_ip = real_mode_header->trampoline_start;
|
unsigned long start_ip = real_mode_header->trampoline_start;
|
||||||
|
|
||||||
|
@ -1116,9 +1114,6 @@ static int do_boot_cpu(int apicid, int cpu, struct task_struct *idle,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* mark "stuck" area as not stuck */
|
|
||||||
*trampoline_status = 0;
|
|
||||||
|
|
||||||
if (x86_platform.legacy.warm_reset) {
|
if (x86_platform.legacy.warm_reset) {
|
||||||
/*
|
/*
|
||||||
* Cleanup possible dangling ends...
|
* Cleanup possible dangling ends...
|
||||||
|
|
|
@ -19,7 +19,6 @@ GLOBAL(real_mode_header)
|
||||||
.long pa_ro_end
|
.long pa_ro_end
|
||||||
/* SMP trampoline */
|
/* SMP trampoline */
|
||||||
.long pa_trampoline_start
|
.long pa_trampoline_start
|
||||||
.long pa_trampoline_status
|
|
||||||
.long pa_trampoline_header
|
.long pa_trampoline_header
|
||||||
#ifdef CONFIG_X86_64
|
#ifdef CONFIG_X86_64
|
||||||
.long pa_trampoline_pgd;
|
.long pa_trampoline_pgd;
|
||||||
|
|
|
@ -41,9 +41,6 @@ ENTRY(trampoline_start)
|
||||||
|
|
||||||
movl tr_start, %eax # where we need to go
|
movl tr_start, %eax # where we need to go
|
||||||
|
|
||||||
movl $0xA5A5A5A5, trampoline_status
|
|
||||||
# write marker for master knows we're running
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* GDT tables in non default location kernel can be beyond 16MB and
|
* GDT tables in non default location kernel can be beyond 16MB and
|
||||||
* lgdt will not be able to load the address as in real mode default
|
* lgdt will not be able to load the address as in real mode default
|
||||||
|
|
|
@ -49,9 +49,6 @@ ENTRY(trampoline_start)
|
||||||
mov %ax, %es
|
mov %ax, %es
|
||||||
mov %ax, %ss
|
mov %ax, %ss
|
||||||
|
|
||||||
movl $0xA5A5A5A5, trampoline_status
|
|
||||||
# write marker for master knows we're running
|
|
||||||
|
|
||||||
# Setup stack
|
# Setup stack
|
||||||
movl $rm_stack_end, %esp
|
movl $rm_stack_end, %esp
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,3 @@
|
||||||
.section ".rodata","a"
|
.section ".rodata","a"
|
||||||
.balign 16
|
.balign 16
|
||||||
tr_idt: .fill 1, 6, 0
|
tr_idt: .fill 1, 6, 0
|
||||||
|
|
||||||
.bss
|
|
||||||
.balign 4
|
|
||||||
GLOBAL(trampoline_status) .space 4
|
|
||||||
|
|
Loading…
Reference in New Issue