| From foo@baz Tue Aug 14 16:14:56 CEST 2018 |
| From: Paolo Bonzini <pbonzini@redhat.com> |
| Date: Mon, 25 Jun 2018 14:04:37 +0200 |
| Subject: KVM: VMX: support MSR_IA32_ARCH_CAPABILITIES as a feature MSR |
| |
| From: Paolo Bonzini <pbonzini@redhat.com> |
| |
| commit cd28325249a1ca0d771557ce823e0308ad629f98 upstream |
| |
| 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> |
| Signed-off-by: Thomas Gleixner <tglx@linutronix.de> |
| Signed-off-by: David Woodhouse <dwmw@amazon.co.uk> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| arch/x86/kvm/x86.c | 4 +++- |
| 1 file changed, 3 insertions(+), 1 deletion(-) |
| |
| --- a/arch/x86/kvm/x86.c |
| +++ b/arch/x86/kvm/x86.c |
| @@ -1015,6 +1015,7 @@ static unsigned num_emulated_msrs; |
| static u32 msr_based_features[] = { |
| MSR_F10H_DECFG, |
| MSR_IA32_UCODE_REV, |
| + MSR_IA32_ARCH_CAPABILITIES, |
| }; |
| |
| static unsigned int num_msr_based_features; |
| @@ -1023,7 +1024,8 @@ static int kvm_get_msr_feature(struct kv |
| { |
| 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)) |