]> xenbits.xensource.com Git - xen.git/commit
x86/hvm: Disallow unknown MSR_EFER bits
authorAndrew Cooper <andrew.cooper3@citrix.com>
Mon, 30 Jul 2018 09:43:31 +0000 (11:43 +0200)
committerJan Beulich <jbeulich@suse.com>
Mon, 30 Jul 2018 09:43:31 +0000 (11:43 +0200)
commitb07c76fece00c9c4c4872575f17e23f860192418
tree7f079190fedd91451c7a3ad4883d2ac1a0904166
parent541a105ada2849930c6c15a6c3aa36f9ecb55d36
x86/hvm: Disallow unknown MSR_EFER bits

It turns out that nothing ever prevented HVM guests from trying to set unknown
EFER bits.  Generally, this results in a vmentry failure.

For Intel hardware, all implemented bits are covered by the checks.

For AMD hardware, the only EFER bit which isn't covered by the checks is TCE
(which AFAICT is specific to AMD Fam15/16 hardware).  We never advertise TCE
in CPUID, but it isn't a security problem to have TCE unexpected enabled in
guest context.

Disallow the setting of bits outside of the EFER_KNOWN_MASK, which prevents
any vmentry failures for guests, yielding #GP instead.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
Reviewed-by: Wei Liu <wei.liu2@citrix.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
master commit: ef0269c6215d642a709866f04ba1a1f9f13f3614
master date: 2018-07-24 11:25:53 +0100
xen/arch/x86/hvm/hvm.c