KVM: VMX: support MSR_IA32_ARCH_CAPABILITIES as a feature MSR
authorPaolo Bonzini <pbonzini@redhat.com>
Mon, 25 Jun 2018 12:04:37 +0000 (14:04 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Sun, 15 Jul 2018 14:26:19 +0000 (16:26 +0200)
This lets userspace read the MSR_IA32_ARCH_CAPABILITIES and check that all
requested features are available on the host.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/x86.c

index 71e7cda6d01430bca8ef226238589ab0e830d6c9..b91c1e1ff45950ee37c59fa4e8cae2053e027451 100644 (file)
@@ -1092,6 +1092,7 @@ static u32 msr_based_features[] = {
 
        MSR_F10H_DECFG,
        MSR_IA32_UCODE_REV,
+       MSR_IA32_ARCH_CAPABILITIES,
 };
 
 static unsigned int num_msr_based_features;
@@ -1100,7 +1101,8 @@ static int kvm_get_msr_feature(struct kvm_msr_entry *msr)
 {
        switch (msr->index) {
        case MSR_IA32_UCODE_REV:
-               rdmsrl(msr->index, msr->data);
+       case MSR_IA32_ARCH_CAPABILITIES:
+               rdmsrl_safe(msr->index, &msr->data);
                break;
        default:
                if (kvm_x86_ops->get_msr_feature(msr))