KVM: arm64: Gate kvm_pmu_update_state() on the PMU feature
authorMarc Zyngier <maz@kernel.org>
Fri, 13 Nov 2020 16:41:40 +0000 (16:41 +0000)
committerMarc Zyngier <maz@kernel.org>
Fri, 27 Nov 2020 11:41:12 +0000 (11:41 +0000)
We currently gate the update of the PMU state on the PMU being "ready".
The "ready" state is only set to true when the first vcpu run is
successful, and if it isn't, we never reach the update code.

So the "ready" state is never the right thing to check for, and it
should instead be the presence of the PMU feature, which makes
a bit more sense.

Reviewed-by: Alexandru Elisei <alexandru.elisei@arm.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
arch/arm64/kvm/pmu-emul.c

index 812495e..5ad900c 100644 (file)
@@ -384,7 +384,7 @@ static void kvm_pmu_update_state(struct kvm_vcpu *vcpu)
        struct kvm_pmu *pmu = &vcpu->arch.pmu;
        bool overflow;
 
-       if (!kvm_arm_pmu_v3_ready(vcpu))
+       if (!kvm_vcpu_has_pmu(vcpu))
                return;
 
        overflow = !!kvm_pmu_overflow_status(vcpu);