lkml.org 
[lkml]   [2018]   [Jan]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.14 139/146] x86/smpboot: Remove stale TLB flush invocations
    Date
    4.14-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Thomas Gleixner <tglx@linutronix.de>

    commit 322f8b8b340c824aef891342b0f5795d15e11562 upstream.

    smpboot_setup_warm_reset_vector() and smpboot_restore_warm_reset_vector()
    invoke local_flush_tlb() for no obvious reason.

    Digging in history revealed that the original code in the 2.1 era added
    those because the code manipulated a swapper_pg_dir pagetable entry. The
    pagetable manipulation was removed long ago in the 2.3 timeframe, but the
    TLB flush invocations stayed around forever.

    Remove them along with the pointless pr_debug()s which come from the same 2.1
    change.

    Reported-by: Dominik Brodowski <linux@dominikbrodowski.net>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Dave Hansen <dave.hansen@linux.intel.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Linus Torvalds <torvalds@linuxfoundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lkml.kernel.org/r/20171230211829.586548655@linutronix.de
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    arch/x86/kernel/smpboot.c | 9 ---------
    1 file changed, 9 deletions(-)

    --- a/arch/x86/kernel/smpboot.c
    +++ b/arch/x86/kernel/smpboot.c
    @@ -128,14 +128,10 @@ static inline void smpboot_setup_warm_re
    spin_lock_irqsave(&rtc_lock, flags);
    CMOS_WRITE(0xa, 0xf);
    spin_unlock_irqrestore(&rtc_lock, flags);
    - local_flush_tlb();
    - pr_debug("1.\n");
    *((volatile unsigned short *)phys_to_virt(TRAMPOLINE_PHYS_HIGH)) =
    start_eip >> 4;
    - pr_debug("2.\n");
    *((volatile unsigned short *)phys_to_virt(TRAMPOLINE_PHYS_LOW)) =
    start_eip & 0xf;
    - pr_debug("3.\n");
    }

    static inline void smpboot_restore_warm_reset_vector(void)
    @@ -143,11 +139,6 @@ static inline void smpboot_restore_warm_
    unsigned long flags;

    /*
    - * Install writable page 0 entry to set BIOS data area.
    - */
    - local_flush_tlb();
    -
    - /*
    * Paranoid: Set warm reset code and vector here back
    * to default values.
    */

    \
     
     \ /
      Last update: 2018-01-01 15:51    [W:3.716 / U:0.100 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site