KVM: cpuid: mask more bits in leaf 0xd and subleaves
authorPaolo Bonzini <pbonzini@redhat.com>
Thu, 4 Dec 2014 14:11:11 +0000 (15:11 +0100)
committerPaolo Bonzini <pbonzini@redhat.com>
Fri, 5 Dec 2014 12:57:17 +0000 (13:57 +0100)
commit404e0a19e155e2303a081109f3ae5e625ac8030a
treec7ac01f970f148c126b5c17cc2137924b3d7728f
parent412a3c411e6df54179f300e8d8d6247327865a2d
KVM: cpuid: mask more bits in leaf 0xd and subleaves

- EAX=0Dh, ECX=1: output registers EBX/ECX/EDX are reserved.

- EAX=0Dh, ECX>1: output register ECX bit 0 is clear for all the CPUID
leaves we support, because variable "supported" comes from XCR0 and not
XSS.  Bits above 0 are reserved, so ECX is overall zero.  Output register
EDX is reserved.

Source: Intel Architecture Instruction Set Extensions Programming
Reference, ref. number 319433-022

Reviewed-by: Radim Krčmář <rkrcmar@redhat.com>
Tested-by: Wanpeng Li <wanpeng.li@linux.intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/cpuid.c