• Linus Torvalds's avatar
    Revert "x86/apic: Include the LDR when clearing out APIC registers" · 1a7fd193
    Linus Torvalds authored
    [ Upstream commit 950b07c1 ]
    
    This reverts commit 558682b5.
    
    Chris Wilson reports that it breaks his CPU hotplug test scripts.  In
    particular, it breaks offlining and then re-onlining the boot CPU, which
    we treat specially (and the BIOS does too).
    
    The symptoms are that we can offline the CPU, but it then does not come
    back online again:
    
        smpboot: CPU 0 is now offline
        smpboot: Booting Node 0 Processor 0 APIC 0x0
        smpboot: do_boot_cpu failed(-1) to wakeup CPU#0
    
    Thomas says he knows why it's broken (my personal suspicion: our magic
    handling of the "cpu0_logical_apicid" thing), but for 5.3 the right fix
    is to just revert it, since we've never touched the LDR bits before, and
    it's not worth the risk to do anything else at this stage.
    
    [ Hotpluging of the boot CPU is special anyway, and should be off by
      default. See the "BOOTPARAM_HOTPLUG_CPU0" config option and the
      cpu0_hotplug kernel parameter.
    
      In general you should not do it, and it has various known limitations
      (hibernate and suspend require the boot CPU, for example).
    
      But it should work, even if the boot CPU is special and needs careful
      treatment       - Linus ]
    
    Link: https://lore.kernel.org/lkml/[email protected]/Reported-by: default avatarChris Wilson <[email protected]>
    Acked-by: default avatarThomas Gleixner <[email protected]>
    Cc: Bandan Das <[email protected]>
    Signed-off-by: default avatarLinus Torvalds <[email protected]>
    Signed-off-by: default avatarSasha Levin <[email protected]>
    1a7fd193
apic.c 69 KB