xen: just completely disable XSAVE
Some (old) versions of Xen just kill the domain if it tries to set any unknown bits in CR4, so we can't reliably probe for OSXSAVE in CR4. Since Xen doesn't support XSAVE for guests at the moment, and no such support is being worked on, there's no downside in just unconditionally masking XSAVE support. Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
This commit is contained in:
parent
d88885d092
commit
61f4237d5b
1 changed files with 1 additions and 17 deletions
|
@ -250,23 +250,7 @@ static __init void xen_init_cpuid_mask(void)
|
|||
~((1 << X86_FEATURE_APIC) | /* disable local APIC */
|
||||
(1 << X86_FEATURE_ACPI)); /* disable ACPI */
|
||||
|
||||
ax = 1;
|
||||
cx = 0;
|
||||
xen_cpuid(&ax, &bx, &cx, &dx);
|
||||
|
||||
/* cpuid claims we support xsave; try enabling it to see what happens */
|
||||
if (cx & (1 << (X86_FEATURE_XSAVE % 32))) {
|
||||
unsigned long cr4;
|
||||
|
||||
set_in_cr4(X86_CR4_OSXSAVE);
|
||||
|
||||
cr4 = read_cr4();
|
||||
|
||||
if ((cr4 & X86_CR4_OSXSAVE) == 0)
|
||||
cpuid_leaf1_ecx_mask &= ~(1 << (X86_FEATURE_XSAVE % 32));
|
||||
|
||||
clear_in_cr4(X86_CR4_OSXSAVE);
|
||||
}
|
||||
cpuid_leaf1_ecx_mask &= ~(1 << (X86_FEATURE_XSAVE % 32)); /* disable XSAVE */
|
||||
}
|
||||
|
||||
static void xen_set_debugreg(int reg, unsigned long val)
|
||||
|
|
Loading…
Reference in a new issue