KVM: arm64: PMU: Simplify vcpu computation on perf overflow notification
authorMarc Zyngier <maz@kernel.org>
Sun, 13 Nov 2022 16:38:31 +0000 (16:38 +0000)
committerMarc Zyngier <maz@kernel.org>
Sat, 19 Nov 2022 12:56:39 +0000 (12:56 +0000)
The way we compute the target vcpu on getting an overflow is
a bit odd, as we use the PMC array as an anchor for kvm_pmc_to_vcpu,
while we could directly compute the correct address.

Get rid of the intermediate step and directly compute the target
vcpu.

Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20221113163832.3154370-16-maz@kernel.org
arch/arm64/kvm/pmu-emul.c

index be881ae..49a0046 100644 (file)
@@ -405,11 +405,8 @@ void kvm_pmu_sync_hwstate(struct kvm_vcpu *vcpu)
 static void kvm_pmu_perf_overflow_notify_vcpu(struct irq_work *work)
 {
        struct kvm_vcpu *vcpu;
-       struct kvm_pmu *pmu;
-
-       pmu = container_of(work, struct kvm_pmu, overflow_work);
-       vcpu = kvm_pmc_to_vcpu(pmu->pmc);
 
+       vcpu = container_of(work, struct kvm_vcpu, arch.pmu.overflow_work);
        kvm_vcpu_kick(vcpu);
 }