diff options
-rw-r--r-- | arch/x86/kernel/apic/apic.c | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c index 9e2dd2b296cd..2b0faf86da1b 100644 --- a/arch/x86/kernel/apic/apic.c +++ b/arch/x86/kernel/apic/apic.c | |||
@@ -1586,9 +1586,6 @@ static void setup_local_APIC(void) | |||
1586 | { | 1586 | { |
1587 | int cpu = smp_processor_id(); | 1587 | int cpu = smp_processor_id(); |
1588 | unsigned int value; | 1588 | unsigned int value; |
1589 | #ifdef CONFIG_X86_32 | ||
1590 | int logical_apicid, ldr_apicid; | ||
1591 | #endif | ||
1592 | 1589 | ||
1593 | if (disable_apic) { | 1590 | if (disable_apic) { |
1594 | disable_ioapic_support(); | 1591 | disable_ioapic_support(); |
@@ -1626,16 +1623,21 @@ static void setup_local_APIC(void) | |||
1626 | apic->init_apic_ldr(); | 1623 | apic->init_apic_ldr(); |
1627 | 1624 | ||
1628 | #ifdef CONFIG_X86_32 | 1625 | #ifdef CONFIG_X86_32 |
1629 | /* | 1626 | if (apic->dest_logical) { |
1630 | * APIC LDR is initialized. If logical_apicid mapping was | 1627 | int logical_apicid, ldr_apicid; |
1631 | * initialized during get_smp_config(), make sure it matches the | 1628 | |
1632 | * actual value. | 1629 | /* |
1633 | */ | 1630 | * APIC LDR is initialized. If logical_apicid mapping was |
1634 | logical_apicid = early_per_cpu(x86_cpu_to_logical_apicid, cpu); | 1631 | * initialized during get_smp_config(), make sure it matches |
1635 | ldr_apicid = GET_APIC_LOGICAL_ID(apic_read(APIC_LDR)); | 1632 | * the actual value. |
1636 | WARN_ON(logical_apicid != BAD_APICID && logical_apicid != ldr_apicid); | 1633 | */ |
1637 | /* always use the value from LDR */ | 1634 | logical_apicid = early_per_cpu(x86_cpu_to_logical_apicid, cpu); |
1638 | early_per_cpu(x86_cpu_to_logical_apicid, cpu) = ldr_apicid; | 1635 | ldr_apicid = GET_APIC_LOGICAL_ID(apic_read(APIC_LDR)); |
1636 | if (logical_apicid != BAD_APICID) | ||
1637 | WARN_ON(logical_apicid != ldr_apicid); | ||
1638 | /* Always use the value from LDR. */ | ||
1639 | early_per_cpu(x86_cpu_to_logical_apicid, cpu) = ldr_apicid; | ||
1640 | } | ||
1639 | #endif | 1641 | #endif |
1640 | 1642 | ||
1641 | /* | 1643 | /* |