summaryrefslogtreecommitdiff
path: root/arch/x86/kvm/pmu.h
diff options
context:
space:
mode:
authorAaron Lewis <aaronlewis@google.com>2022-12-20 19:12:30 +0300
committerSean Christopherson <seanjc@google.com>2023-01-24 21:06:10 +0300
commit6a5cba7bed35580effda9fb1872b274da47e6b23 (patch)
treeacd176cf254c9a1a2fe9dff712f28ef0de78e6c9 /arch/x86/kvm/pmu.h
parent7cb79f433e75b05d1635aefaa851cfcd1cb7dc4f (diff)
downloadlinux-6a5cba7bed35580effda9fb1872b274da47e6b23.tar.xz
KVM: x86/pmu: Correct the mask used in a pmu event filter lookup
When checking if a pmu event the guest is attempting to program should be filtered, only consider the event select + unit mask in that decision. Use an architecture specific mask to mask out all other bits, including bits 35:32 on Intel. Those bits are not part of the event select and should not be considered in that decision. Fixes: 66bb8a065f5a ("KVM: x86: PMU Event Filter") Signed-off-by: Aaron Lewis <aaronlewis@google.com> Link: https://lore.kernel.org/r/20221220161236.555143-2-aaronlewis@google.com Signed-off-by: Sean Christopherson <seanjc@google.com>
Diffstat (limited to 'arch/x86/kvm/pmu.h')
-rw-r--r--arch/x86/kvm/pmu.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/x86/kvm/pmu.h b/arch/x86/kvm/pmu.h
index cdb91009701d..30bfccc6df60 100644
--- a/arch/x86/kvm/pmu.h
+++ b/arch/x86/kvm/pmu.h
@@ -40,6 +40,8 @@ struct kvm_pmu_ops {
void (*reset)(struct kvm_vcpu *vcpu);
void (*deliver_pmi)(struct kvm_vcpu *vcpu);
void (*cleanup)(struct kvm_vcpu *vcpu);
+
+ const u64 EVENTSEL_EVENT;
};
void kvm_pmu_ops_update(const struct kvm_pmu_ops *pmu_ops);