2011-01-14 19:24:51 +01:00
|
|
|
# HG changeset patch
|
|
|
|
# User Keir Fraser <keir@xen.org>
|
|
|
|
# Date 1289813498 0
|
|
|
|
# Node ID 87f248de52304bc96a80dc093250fed0197f37e0
|
|
|
|
# Parent 8af10bd7f2d0e9300f1bc68f7e2fb137fa839365
|
|
|
|
x2apic: Remove a panic condition in enabling x2APIC
|
|
|
|
|
|
|
|
Currently Xen triggers a panic if user disables VT-d by command line
|
|
|
|
while not disable x2APIC. This requires users to specify both
|
|
|
|
"iommu=0" and "x2apic=0" to disable VT-d if the platform supports
|
|
|
|
x2APIC. It's not user friendly. This patch removes the panic
|
|
|
|
condition. That's to say, don't require user to specify "x2apic=0"
|
|
|
|
when specify "iommu=0". As long as VT-d is not enabled (disabled in
|
|
|
|
BIOS or in command line), x2APIC won't be enabled naturally (x2APIC
|
|
|
|
depends on VT-d Interrupt remapping).
|
|
|
|
|
|
|
|
Signed-off-by: Weidong Han <weidong.han@intel.com>
|
|
|
|
|
2011-02-04 22:19:54 +01:00
|
|
|
Index: xen-4.0.2-testing/xen/arch/x86/apic.c
|
|
|
|
===================================================================
|
|
|
|
--- xen-4.0.2-testing.orig/xen/arch/x86/apic.c
|
|
|
|
+++ xen-4.0.2-testing/xen/arch/x86/apic.c
|
|
|
|
@@ -1001,22 +1001,11 @@ static void enable_bsp_x2apic(void)
|
2011-01-14 19:24:51 +01:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
- if ( !iommu_enabled || !iommu_intremap || !iommu_qinval )
|
|
|
|
- panic("Cannot enable x2APIC due to iommu or interrupt "
|
|
|
|
- "remapping or queued invalidation is disabled "
|
|
|
|
- "by command line!\n");
|
|
|
|
- else
|
|
|
|
- {
|
|
|
|
- if ( x2apic_preenabled )
|
|
|
|
- panic("x2APIC: already enabled by BIOS, but "
|
|
|
|
- "iommu_supports_eim fails\n");
|
|
|
|
- else
|
|
|
|
- {
|
|
|
|
- printk("Not enable x2APIC due to "
|
|
|
|
- "iommu_supports_eim fails!\n");
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
+ if ( x2apic_preenabled )
|
|
|
|
+ panic("x2APIC: already enabled by BIOS, but "
|
|
|
|
+ "iommu_supports_eim failed!\n");
|
|
|
|
+ printk("Not enabling x2APIC: depends oniommu_supports_eim\n");
|
|
|
|
+ return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|