Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull x86 fix from Thomas Gleixner:
"A single fix for a APIC regression introduced in 4.0 which went
undetected until now.

I screwed up the x2apic cleanup in a subtle way. The screwup is only
visible on systems which have x2apic preenabled in the BIOS and need
to disable it during boot"

* 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
x86/apic: Fix fallout from x2apic cleanup

+7 -7
+7 -7
arch/x86/kernel/apic/apic.c
··· 1424 1424 { 1425 1425 u64 msr; 1426 1426 1427 - if (cpu_has_apic) 1427 + if (!cpu_has_apic) 1428 1428 return; 1429 1429 1430 1430 rdmsrl(MSR_IA32_APICBASE, msr); ··· 1483 1483 1484 1484 static __init void x2apic_disable(void) 1485 1485 { 1486 - u32 x2apic_id; 1486 + u32 x2apic_id, state = x2apic_state; 1487 1487 1488 - if (x2apic_state != X2APIC_ON) 1489 - goto out; 1488 + x2apic_mode = 0; 1489 + x2apic_state = X2APIC_DISABLED; 1490 + 1491 + if (state != X2APIC_ON) 1492 + return; 1490 1493 1491 1494 x2apic_id = read_apic_id(); 1492 1495 if (x2apic_id >= 255) ··· 1497 1494 1498 1495 __x2apic_disable(); 1499 1496 register_lapic_address(mp_lapic_addr); 1500 - out: 1501 - x2apic_state = X2APIC_DISABLED; 1502 - x2apic_mode = 0; 1503 1497 } 1504 1498 1505 1499 static __init void x2apic_enable(void)