KVM: x86: mask CPUID(0xD,0x1).EAX against host value
authorPaolo Bonzini <pbonzini@redhat.com>
Mon, 21 Mar 2016 11:33:00 +0000 (12:33 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 1 Jun 2016 19:17:01 +0000 (12:17 -0700)
commitcaa2ca520f0d0cb963f5d0a18cbcd7cdfd1f1b0d
treec835420676f258c5ed19395e839071659f34c160
parentf9c9ade6b859d50a4b186ac45793fa0d0e7698e9
KVM: x86: mask CPUID(0xD,0x1).EAX against host value

commit 316314cae15fb0e3869b76b468f59a0c83ac3d4e upstream.

This ensures that the guest doesn't see XSAVE extensions
(e.g. xgetbv1 or xsavec) that the host lacks.

Cc: stable@vger.kernel.org
Reviewed-by: Radim Krčmář <rkrcmar@redhat.com>
[4.5 does have CPUID_D_1_EAX, but earlier kernels don't, so use
 the numeric value.  This is consistent with other occurrences
 of cpuid_mask in arch/x86/kvm/cpuid.c - Paolo]
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/x86/kvm/cpuid.c