lguest: fix crash 'unhandled trap 13 at <native_read_msr_safe>'
authorRusty Russell <rusty@rustcorp.com.au>
Mon, 9 Mar 2009 16:06:22 +0000 (10:06 -0600)
committerRusty Russell <rusty@rustcorp.com.au>
Sun, 8 Mar 2009 23:36:28 +0000 (10:06 +1030)
commitcbd88c8e6f5cdb8d4b9af01df825305200240382
tree4ec4c5123fab9f08e7a31fe7843ab4f7b9197656
parent7a203f3b089be4410fe065dd9927027eade94557
lguest: fix crash 'unhandled trap 13 at <native_read_msr_safe>'

Impact: fix lguest boot crash on modern Intel machines

The code in early_init_intel does:

if (c->x86 > 6 || (c->x86 == 6 && c->x86_model >= 0xd)) {
u64 misc_enable;

rdmsrl(MSR_IA32_MISC_ENABLE, misc_enable);

And that rdmsr faults (not allowed from non-0 PL).  We can get around
this by mugging the family ID part of the cpuid.  5 seems like a good
number.

Of course, this is a hack (how very lguest!).  We could just indicate
that we don't support MSRs, or implement lguest_rdmst.

Reported-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Tested-by: Patrick McHardy <kaber@trash.net>
arch/x86/lguest/boot.c