diff options
author | Sean Christopherson <seanjc@google.com> | 2021-05-04 10:17:23 -0700 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2021-05-07 06:06:16 -0400 |
commit | 2183de4161b90bd3851ccd3910c87b2c9adfc6ed (patch) | |
tree | c3e40541bcb213e9cc8317ca22b2327d482e9a59 /arch/x86/kvm/vmx/vmx.c | |
parent | 3b195ac9260235624b1c18f7bdaef184479c1d41 (diff) | |
download | lwn-2183de4161b90bd3851ccd3910c87b2c9adfc6ed.tar.gz lwn-2183de4161b90bd3851ccd3910c87b2c9adfc6ed.zip |
KVM: x86: Move RDPID emulation intercept to its own enum
Add a dedicated intercept enum for RDPID instead of piggybacking RDTSCP.
Unlike VMX's ENABLE_RDTSCP, RDPID is not bound to SVM's RDTSCP intercept.
Fixes: fb6d4d340e05 ("KVM: x86: emulate RDPID")
Cc: stable@vger.kernel.org
Signed-off-by: Sean Christopherson <seanjc@google.com>
Message-Id: <20210504171734.1434054-5-seanjc@google.com>
Reviewed-by: Jim Mattson <jmattson@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'arch/x86/kvm/vmx/vmx.c')
-rw-r--r-- | arch/x86/kvm/vmx/vmx.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c index 46573b862638..4a625c748275 100644 --- a/arch/x86/kvm/vmx/vmx.c +++ b/arch/x86/kvm/vmx/vmx.c @@ -7437,8 +7437,9 @@ static int vmx_check_intercept(struct kvm_vcpu *vcpu, /* * RDPID causes #UD if disabled through secondary execution controls. * Because it is marked as EmulateOnUD, we need to intercept it here. + * Note, RDPID is hidden behind ENABLE_RDTSCP. */ - case x86_intercept_rdtscp: + case x86_intercept_rdpid: if (!nested_cpu_has2(vmcs12, SECONDARY_EXEC_ENABLE_RDTSCP)) { exception->vector = UD_VECTOR; exception->error_code_valid = false; |