xen: mask XSAVE from cpuid
authorJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Sun, 8 Mar 2009 01:09:27 +0000 (17:09 -0800)
committerJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Mon, 30 Mar 2009 16:25:28 +0000 (09:25 -0700)
commite826fe1ba1563a9272345da8e3279a930ac160a7
treed92e3d019424a4d2cf7bcd76b252fd6ff57b1eab
parente9e2d1ffcfdb38bed11a3064aa74bea9ee38ed80
xen: mask XSAVE from cpuid

Xen leaves XSAVE set in cpuid, but doesn't allow cr4.OSXSAVE
to be set.  This confuses the kernel and it ends up crashing on
an xsetbv instruction.

At boot time, try to set cr4.OSXSAVE, and mask XSAVE out of
cpuid it we can't.  This will produce a spurious error from Xen,
but allows us to support XSAVE if/when Xen does.

This also factors out the cpuid mask decisions to boot time.

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
arch/x86/xen/enlighten.c