x86: unmask CPUID levels on Intel CPUs
authorH. Peter Anvin <hpa@linux.intel.com>
Wed, 21 Jan 2009 23:04:32 +0000 (15:04 -0800)
committerIngo Molnar <mingo@elte.hu>
Thu, 22 Jan 2009 08:24:02 +0000 (09:24 +0100)
commit066941bd4eeb159307a5d7d795100d0887c00442
tree2bd4dfc033f72cbe0b3532140f54df1869dd6180
parentbdf21a49bab28f0d9613e8d8724ef9c9168b61b9
x86: unmask CPUID levels on Intel CPUs

Impact: Fixes crashes with misconfigured BIOSes on XSAVE hardware

Avuton Olrich reported early boot crashes with v2.6.28 and
bisected it down to dc1e35c6e95e8923cf1d3510438b63c600fee1e2
("x86, xsave: enable xsave/xrstor on cpus with xsave support").

If the CPUID limit bit in MSR_IA32_MISC_ENABLE is set, clear it to
make all CPUID information available.  This is required for some
features to work, in particular XSAVE.

Reported-and-bisected-by: Avuton Olrich <avuton@gmail.com>
Tested-by: Avuton Olrich <avuton@gmail.com>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
arch/x86/kernel/cpu/intel.c