Commit 001d85bd authored by Marc Zyngier's avatar Marc Zyngier
Browse files

KVM: arm64: PMU: Narrow the overflow checking when required



For 64bit counters that overflow on a 32bit boundary, make
sure we only check the bottom 32bit to generate a CHAIN event.

Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
Reviewed-by: default avatarReiji Watanabe <reijiw@google.com>
Link: https://lore.kernel.org/r/20221113163832.3154370-6-maz@kernel.org
parent c82d28cb
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -417,7 +417,8 @@ static void kvm_pmu_counter_increment(struct kvm_vcpu *vcpu,
		reg = lower_32_bits(reg);
		__vcpu_sys_reg(vcpu, PMEVCNTR0_EL0 + i) = reg;

		if (reg) /* No overflow? move on */
		/* No overflow? move on */
		if (kvm_pmu_idx_has_64bit_overflow(vcpu, i) ? reg : lower_32_bits(reg))
			continue;

		/* Mark overflow */