Skip to content

Commit

Permalink
KVM: arm64: Remove dead PMU sysreg decoding code
Browse files Browse the repository at this point in the history
The handling of traps in access_pmu_evcntr() has a couple of
omminous "else return false;" statements that don't make any sense:
the decoding tree coverse all the registers that trap to this handler,
and returning false implies that we change PC, which we don't.

Get rid of what is evidently dead code.

Reviewed-by: Alexandru Elisei <alexandru.elisei@arm.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
  • Loading branch information
Marc Zyngier committed Nov 27, 2020
1 parent f975ccb commit a3da935
Showing 1 changed file with 4 additions and 5 deletions.
9 changes: 4 additions & 5 deletions arch/arm64/kvm/sys_regs.c
Original file line number Diff line number Diff line change
Expand Up @@ -717,7 +717,7 @@ static bool access_pmu_evcntr(struct kvm_vcpu *vcpu,
struct sys_reg_params *p,
const struct sys_reg_desc *r)
{
u64 idx;
u64 idx = ~0UL;

if (r->CRn == 9 && r->CRm == 13) {
if (r->Op2 == 2) {
Expand All @@ -733,8 +733,6 @@ static bool access_pmu_evcntr(struct kvm_vcpu *vcpu,
return false;

idx = ARMV8_PMU_CYCLE_IDX;
} else {
return false;
}
} else if (r->CRn == 0 && r->CRm == 9) {
/* PMCCNTR */
Expand All @@ -748,10 +746,11 @@ static bool access_pmu_evcntr(struct kvm_vcpu *vcpu,
return false;

idx = ((r->CRm & 3) << 3) | (r->Op2 & 7);
} else {
return false;
}

/* Catch any decoding mistake */
WARN_ON(idx == ~0UL);

if (!pmu_counter_idx_valid(vcpu, idx))
return false;

Expand Down

0 comments on commit a3da935

Please sign in to comment.