KVM: x86: fix checking of cr0 validity
authorGleb Natapov <gleb@redhat.com>
Thu, 21 Jan 2010 13:28:46 +0000 (15:28 +0200)
committerMarcelo Tosatti <mtosatti@redhat.com>
Mon, 1 Mar 2010 15:36:03 +0000 (12:36 -0300)
commitab344828ebe729e52949d64046adaa196f6b9dbe
tree4dcd8ebdd8a2bb3afefb2028abd667970bf4d6ed
parentf0f4b930900ffa8daddb5262522c3e5c67ee1835
KVM: x86: fix checking of cr0 validity

Move to/from Control Registers chapter of Intel SDM says.  "Reserved bits
in CR0 remain clear after any load of those registers; attempts to set
them have no impact". Control Register chapter says "Bits 63:32 of CR0 are
reserved and must be written with zeros. Writing a nonzero value to any
of the upper 32 bits results in a general-protection exception, #GP(0)."

This patch tries to implement this twisted logic.

Signed-off-by: Gleb Natapov <gleb@redhat.com>
Reported-by: Lorenzo Martignoni <martignlo@gmail.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
arch/x86/kvm/x86.c