|
@@ -1538,6 +1538,14 @@ static void setup_local_APIC(void)
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /*
|
|
|
|
|
+ * If this comes from kexec/kcrash the APIC might be enabled in
|
|
|
|
|
+ * SPIV. Soft disable it before doing further initialization.
|
|
|
|
|
+ */
|
|
|
|
|
+ value = apic_read(APIC_SPIV);
|
|
|
|
|
+ value &= ~APIC_SPIV_APIC_ENABLED;
|
|
|
|
|
+ apic_write(APIC_SPIV, value);
|
|
|
|
|
+
|
|
|
#ifdef CONFIG_X86_32
|
|
#ifdef CONFIG_X86_32
|
|
|
/* Pound the ESR really hard over the head with a big hammer - mbligh */
|
|
/* Pound the ESR really hard over the head with a big hammer - mbligh */
|
|
|
if (lapic_is_integrated() && apic->disable_esr) {
|
|
if (lapic_is_integrated() && apic->disable_esr) {
|