|
@@ -1598,6 +1598,14 @@ void __init enable_IR_x2apic(void)
|
|
int ret, x2apic_enabled = 0;
|
|
int ret, x2apic_enabled = 0;
|
|
int hardware_init_ret;
|
|
int hardware_init_ret;
|
|
|
|
|
|
|
|
+ if (!IS_ENABLED(CONFIG_X86_X2APIC)) {
|
|
|
|
+ u64 msr;
|
|
|
|
+
|
|
|
|
+ rdmsrl(MSR_IA32_APICBASE, msr);
|
|
|
|
+ if (msr & X2APIC_ENABLE)
|
|
|
|
+ panic("BIOS has enabled x2apic but kernel doesn't support x2apic, please disable x2apic in BIOS.\n");
|
|
|
|
+ }
|
|
|
|
+
|
|
hardware_init_ret = irq_remapping_prepare();
|
|
hardware_init_ret = irq_remapping_prepare();
|
|
if (hardware_init_ret && !x2apic_supported())
|
|
if (hardware_init_ret && !x2apic_supported())
|
|
return;
|
|
return;
|