From: Keir Fraser Date: Wed, 14 Jan 2009 10:56:18 +0000 (+0000) Subject: x86: propagate disabled APIC state to Dom0 X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~14014^2~65 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=b1b4a612b656d35d4f026f4f3d1dd6700194f18e;p=xen.git x86: propagate disabled APIC state to Dom0 This in particular eliminates the need to specify "noapic" to Dom0 when "noapic" is passed to Xen, provided the kernel side gets slightly modified to make use of this information (Linux side patch cannot easily be provided for the 2.6.18 tree, but this is being used by our 2.6.27-based one). Signed-off-by: Jan Beulich --- diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c index bdd6f59b08..cd23b9bc50 100644 --- a/xen/arch/x86/traps.c +++ b/xen/arch/x86/traps.c @@ -723,6 +723,8 @@ static void pv_cpuid(struct cpu_user_regs *regs) { /* Modify Feature Information. */ __clear_bit(X86_FEATURE_VME, &d); + if ( !cpu_has_apic ) + __clear_bit(X86_FEATURE_APIC, &d); if ( !opt_allow_hugepage ) __clear_bit(X86_FEATURE_PSE, &d); __clear_bit(X86_FEATURE_PGE, &d); @@ -755,6 +757,8 @@ static void pv_cpuid(struct cpu_user_regs *regs) __clear_bit(X86_FEATURE_XTPR % 32, &c); __clear_bit(X86_FEATURE_PDCM % 32, &c); __clear_bit(X86_FEATURE_DCA % 32, &c); + if ( !cpu_has_apic ) + __clear_bit(X86_FEATURE_X2APIC % 32, &c); __set_bit(X86_FEATURE_HYPERVISOR % 32, &c); break; case 0x80000001: @@ -773,6 +777,8 @@ static void pv_cpuid(struct cpu_user_regs *regs) __clear_bit(X86_FEATURE_RDTSCP % 32, &d); __clear_bit(X86_FEATURE_SVME % 32, &c); + if ( !cpu_has_apic ) + __clear_bit(X86_FEATURE_EXTAPICSPACE % 32, &c); __clear_bit(X86_FEATURE_OSVW % 32, &c); __clear_bit(X86_FEATURE_IBS % 32, &c); __clear_bit(X86_FEATURE_SKINIT % 32, &c);