Skip to content

Commit c1723bb

Browse files
committed
arm64/vmm: Clear all pmc fields
When clearing pmcntenclr_el0, pmintenclr_el1, and pmovsclr_el0 clear all bits as new fields may be added in the upper 32-bits. Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D52801
1 parent 7b18bf2 commit c1723bb

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

sys/arm64/vmm/vmm_hyp.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -338,11 +338,11 @@ vmm_hyp_reg_restore(struct hypctx *hypctx, struct hyp *hyp, bool guest,
338338
WRITE_SPECIALREG(pmccntr_el0, hypctx->pmccntr_el0);
339339
WRITE_SPECIALREG(pmccfiltr_el0, hypctx->pmccfiltr_el0);
340340
/* Clear all events/interrupts then enable them */
341-
WRITE_SPECIALREG(pmcntenclr_el0, 0xfffffffful);
341+
WRITE_SPECIALREG(pmcntenclr_el0, ~0ul);
342342
WRITE_SPECIALREG(pmcntenset_el0, hypctx->pmcntenset_el0);
343-
WRITE_SPECIALREG(pmintenclr_el1, 0xfffffffful);
343+
WRITE_SPECIALREG(pmintenclr_el1, ~0ul);
344344
WRITE_SPECIALREG(pmintenset_el1, hypctx->pmintenset_el1);
345-
WRITE_SPECIALREG(pmovsclr_el0, 0xfffffffful);
345+
WRITE_SPECIALREG(pmovsclr_el0, ~0ul);
346346
WRITE_SPECIALREG(pmovsset_el0, hypctx->pmovsset_el0);
347347

348348
switch ((hypctx->pmcr_el0 & PMCR_N_MASK) >> PMCR_N_SHIFT) {

0 commit comments

Comments
 (0)