diff options
Diffstat (limited to 'arch/x86/kernel/apic/apic.c')
-rw-r--r-- | arch/x86/kernel/apic/apic.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c index e82488d3f0ba..a4c9cf0bf70b 100644 --- a/arch/x86/kernel/apic/apic.c +++ b/arch/x86/kernel/apic/apic.c | |||
@@ -249,7 +249,7 @@ static void native_apic_write_dummy(u32 reg, u32 v) | |||
249 | 249 | ||
250 | static u32 native_apic_read_dummy(u32 reg) | 250 | static u32 native_apic_read_dummy(u32 reg) |
251 | { | 251 | { |
252 | WARN_ON_ONCE((cpu_has_apic || !disable_apic)); | 252 | WARN_ON_ONCE((cpu_has_apic && !disable_apic)); |
253 | return 0; | 253 | return 0; |
254 | } | 254 | } |
255 | 255 | ||
@@ -1609,6 +1609,13 @@ void __init init_apic_mappings(void) | |||
1609 | new_apicid = read_apic_id(); | 1609 | new_apicid = read_apic_id(); |
1610 | if (boot_cpu_physical_apicid != new_apicid) { | 1610 | if (boot_cpu_physical_apicid != new_apicid) { |
1611 | boot_cpu_physical_apicid = new_apicid; | 1611 | boot_cpu_physical_apicid = new_apicid; |
1612 | /* | ||
1613 | * yeah -- we lie about apic_version | ||
1614 | * in case if apic was disabled via boot option | ||
1615 | * but it's not a problem for SMP compiled kernel | ||
1616 | * since smp_sanity_check is prepared for such a case | ||
1617 | * and disable smp mode | ||
1618 | */ | ||
1612 | apic_version[new_apicid] = | 1619 | apic_version[new_apicid] = |
1613 | GET_APIC_VERSION(apic_read(APIC_LVR)); | 1620 | GET_APIC_VERSION(apic_read(APIC_LVR)); |
1614 | } | 1621 | } |