-/*
- * Older (with no clear statement about what old means) Xen hypervisors
- * will crash a PV guest that tries to store OSXSAVE into CR4.
- * To prevent this, we force the feature bits related to this off in the
- * xen cpuid call. This inline function serves as a centralized test
- * on whether the quirk should be done.
- */
-static inline needs_xsave_quirk(unsigned version)
-{
- return (xen_pv_domain() && ((version >> 16) < 4)) ? 1 : 0;
-}
-
static void __init xen_banner(void)
{
unsigned version = HYPERVISOR_xen_version(XENVER_version, NULL);
@@ -219,8 +207,6 @@ static void __init xen_banner(void)
printk(KERN_INFO "Xen version: %d.%d%s%s
",
version >> 16, version & 0xffff, extra.extraversion,
xen_feature(XENFEAT_mmu_pt_update_preserve_ad) ? " (preserve-AD)" : "");
- if (needs_xsave_quirk(version))
- printk(KERN_INFO "Forcing xsave off due to Xen version.
");
}
/* Xen will set CR4.OSXSAVE if supported and not disabled by force */
- if (((cx & xsave_mask) != xsave_mask) || needs_xsave_quirk(version))
+ if ((cx & xsave_mask) != xsave_mask)
cpuid_leaf1_ecx_mask &= ~xsave_mask; /* disable XSAVE & OSXSAVE */
if (xen_check_mwait())
cpuid_leaf1_ecx_set_mask = (1 << (X86_FEATURE_MWAIT % 32));
--
1.7.9.5
--
kernel-team mailing list
kernel-team@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/kernel-team