target/arm: Don't apply CNTVOFF_EL2 for EL2_VIRT timer

The CNTVOFF_EL2 offset register should only be applied for accessses
to CNTVCT_EL0 and for the EL1 virtual timer (CNTV_*).  We were
incorrectly applying it for the EL2 virtual timer (CNTHV_*).

Cc: qemu-stable@nongnu.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Message-id: 20250204125009.2281315-3-peter.maydell@linaro.org
This commit is contained in:
Peter Maydell 2025-03-07 10:08:20 +00:00
parent db6c219283
commit 5709038aa8

View File

@ -2604,7 +2604,6 @@ static uint64_t gt_tval_read(CPUARMState *env, const ARMCPRegInfo *ri,
switch (timeridx) { switch (timeridx) {
case GTIMER_VIRT: case GTIMER_VIRT:
case GTIMER_HYPVIRT:
offset = gt_virt_cnt_offset(env); offset = gt_virt_cnt_offset(env);
break; break;
case GTIMER_PHYS: case GTIMER_PHYS:
@ -2624,7 +2623,6 @@ static void gt_tval_write(CPUARMState *env, const ARMCPRegInfo *ri,
switch (timeridx) { switch (timeridx) {
case GTIMER_VIRT: case GTIMER_VIRT:
case GTIMER_HYPVIRT:
offset = gt_virt_cnt_offset(env); offset = gt_virt_cnt_offset(env);
break; break;
case GTIMER_PHYS: case GTIMER_PHYS: