3e51b51ba9
be booted from EFI" 53dba447-x86-ACPI-allow-CMOS-RTC-use-even-when-ACPI-says-there-is-none.patch - Upstream patches from Jan 53d7b781-x86-cpu-undo-BIOS-CPUID-max_leaf-limit-earlier.patch 53df71c7-lz4-check-for-underruns.patch 53df727b-x86-HVM-extend-LAPIC-shortcuts-around-P2M-lookups.patch 53e47d6b-x86_emulate-properly-do-IP-updates-and-other-side-effects.patch - Update to Xen Version 4.4.1-rc2 xen-4.4.1-testing-src.tar.bz2 - Dropped 60 upstream patches and xen-4.4.0-testing-src.tar.bz2 - bnc#820873 - The "long" option doesn't work with "xl list" 53d124e7-fix-list_domain_details-check-config-data-length-0.patch - bnc#888996 - Package 'xen-tool' contains 'SuSE' spelling in a filename and/or SPEC file Renamed README.SuSE -> README.SUSE Modified files: xen.spec, boot.local.xenU, init.pciback xend-config.patch, xend-vif-route-ifup.patch - bnc#882673 - Dom0 memory should enforce a minimum memory size (e.g. dom0_mem=min:512M) xen.spec (Mike Latimer) OBS-URL: https://build.opensuse.org/package/show/Virtualization/xen?expand=0&rev=324
47 lines
1.6 KiB
Diff
47 lines
1.6 KiB
Diff
# Commit a1ac4cf52e38386bac7ac3440c7da0099662ca5c
|
|
# Date 2014-07-29 17:02:25 +0200
|
|
# Author Andrew Cooper <andrew.cooper3@citrix.com>
|
|
# Committer Jan Beulich <jbeulich@suse.com>
|
|
x86/cpu: undo BIOS CPUID max_leaf limit before querying for features
|
|
|
|
If IA32_MISC_ENABLE[22] is set by the BIOS, CPUID.0.EAX will be limited to 3.
|
|
Lift this limit before considering whether to query CPUID.7[ECX=0].EBX for
|
|
features.
|
|
|
|
Without this change, dom0 is able to see this feature leaf (as the limit was
|
|
subsequently lifted), and will set features appropriately in HVM domain cpuid
|
|
policies.
|
|
|
|
The specific bug XenServer observed was the advertisement of the FSGSBASE
|
|
feature, but an inability to set CR4.FSGSBASE as Xen considered the bit to be
|
|
reserved as cpu_has_fsgsbase incorrectly evaluated as false.
|
|
|
|
This is a regression introduced by c/s 44e24f8567 "x86: don't call
|
|
generic_identify() redundantly" where the redundant call actually resampled
|
|
CPUID.7[ECX=0] properly to obtain the feature flags.
|
|
|
|
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
|
|
Reviewed-by: Jan Beulich <jbeulich@suse.com>
|
|
|
|
--- a/xen/arch/x86/cpu/common.c
|
|
+++ b/xen/arch/x86/cpu/common.c
|
|
@@ -234,6 +234,9 @@ static void __cpuinit generic_identify(s
|
|
paddr_bits = cpuid_eax(0x80000008) & 0xff;
|
|
}
|
|
|
|
+ /* Might lift BIOS max_leaf=3 limit. */
|
|
+ early_intel_workaround(c);
|
|
+
|
|
/* Intel-defined flags: level 0x00000007 */
|
|
if ( c->cpuid_level >= 0x00000007 ) {
|
|
u32 dummy;
|
|
@@ -241,8 +244,6 @@ static void __cpuinit generic_identify(s
|
|
c->x86_capability[X86_FEATURE_FSGSBASE / 32] = ebx;
|
|
}
|
|
|
|
- early_intel_workaround(c);
|
|
-
|
|
#ifdef CONFIG_X86_HT
|
|
c->phys_proc_id = (cpuid_ebx(1) >> 24) & 0xff;
|
|
#endif
|