summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLike Xu <like.xu@linux.intel.com>2021-02-23 09:39:57 +0800
committerPaolo Bonzini <pbonzini@redhat.com>2021-02-23 12:07:35 -0500
commit67b45af946ec3148b64e6a3a1ee2ea8f79c5bc07 (patch)
tree23dbe1641c65428ce38cf5b9f788f5696288972d
parent4a42d848db9544e3108875390886dc490d9c101e (diff)
downloadlinux-67b45af946ec3148b64e6a3a1ee2ea8f79c5bc07.tar.gz
linux-67b45af946ec3148b64e6a3a1ee2ea8f79c5bc07.tar.bz2
linux-67b45af946ec3148b64e6a3a1ee2ea8f79c5bc07.zip
KVM: vmx/pmu: Fix dummy check if lbr_desc->event is created
If lbr_desc->event is successfully created, the intel_pmu_create_ guest_lbr_event() will return 0, otherwise it will return -ENOENT, and then jump to LBR msrs dummy handling. Fixes: 1b5ac3226a1a ("KVM: vmx/pmu: Pass-through LBR msrs when the guest LBR event is ACTIVE") Signed-off-by: Like Xu <like.xu@linux.intel.com> Message-Id: <20210223013958.1280444-1-like.xu@linux.intel.com> [Add "< 0" and PTR_ERR to make the code clearer. - Paolo] Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-rw-r--r--arch/x86/kvm/vmx/pmu_intel.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/x86/kvm/vmx/pmu_intel.c b/arch/x86/kvm/vmx/pmu_intel.c
index d1df618cb7de..9efc1a6b8693 100644
--- a/arch/x86/kvm/vmx/pmu_intel.c
+++ b/arch/x86/kvm/vmx/pmu_intel.c
@@ -298,7 +298,7 @@ int intel_pmu_create_guest_lbr_event(struct kvm_vcpu *vcpu)
if (IS_ERR(event)) {
pr_debug_ratelimited("%s: failed %ld\n",
__func__, PTR_ERR(event));
- return -ENOENT;
+ return PTR_ERR(event);
}
lbr_desc->event = event;
pmu->event_count++;
@@ -320,7 +320,7 @@ static bool intel_pmu_handle_lbr_msrs_access(struct kvm_vcpu *vcpu,
if (!intel_pmu_is_valid_lbr_msr(vcpu, index))
return false;
- if (!lbr_desc->event && !intel_pmu_create_guest_lbr_event(vcpu))
+ if (!lbr_desc->event && intel_pmu_create_guest_lbr_event(vcpu) < 0)
goto dummy;
/*