x86/realmode: Remove trampoline_status
authorPingfan Liu <kernelfans@gmail.com>
Tue, 16 Jul 2019 08:40:24 +0000 (16:40 +0800)
committerThomas Gleixner <tglx@linutronix.de>
Mon, 22 Jul 2019 09:30:18 +0000 (11:30 +0200)
There is no reader of trampoline_status, it's only written.

It turns out that after commit ce4b1b16502b ("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
arch/x86/include/asm/realmode.h
arch/x86/kernel/smpboot.c
arch/x86/realmode/rm/header.S
arch/x86/realmode/rm/trampoline_32.S
arch/x86/realmode/rm/trampoline_64.S
arch/x86/realmode/rm/trampoline_common.S

index c536823..09ecc32 100644 (file)
@@ -20,7 +20,6 @@ struct real_mode_header {
        u32     ro_end;
        /* SMP trampoline */
        u32     trampoline_start;
-       u32     trampoline_status;
        u32     trampoline_header;
 #ifdef CONFIG_X86_64
        u32     trampoline_pgd;
index fdbd47c..497e9b7 100644 (file)
@@ -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,
                       int *cpu0_nmi_registered)
 {
-       volatile u32 *trampoline_status =
-               (volatile u32 *) __va(real_mode_header->trampoline_status);
        /* start_ip had better be page-aligned! */
        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) {
                /*
                 * Cleanup possible dangling ends...
index 30b0d30..6363761 100644 (file)
@@ -19,7 +19,6 @@ GLOBAL(real_mode_header)
        .long   pa_ro_end
        /* SMP trampoline */
        .long   pa_trampoline_start
-       .long   pa_trampoline_status
        .long   pa_trampoline_header
 #ifdef CONFIG_X86_64
        .long   pa_trampoline_pgd;
index 2dd866c..1868b15 100644 (file)
@@ -41,9 +41,6 @@ ENTRY(trampoline_start)
 
        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
         * lgdt will not be able to load the address as in real mode default
index 24bb759..aee2b45 100644 (file)
@@ -49,9 +49,6 @@ ENTRY(trampoline_start)
        mov     %ax, %es
        mov     %ax, %ss
 
-       movl    $0xA5A5A5A5, trampoline_status
-       # write marker for master knows we're running
-
        # Setup stack
        movl    $rm_stack_end, %esp
 
index 7c70677..8d8208d 100644 (file)
@@ -2,7 +2,3 @@
        .section ".rodata","a"
        .balign 16
 tr_idt: .fill 1, 6, 0
-
-       .bss
-       .balign 4
-GLOBAL(trampoline_status)      .space  4