hw/riscv/riscv-iommu-hpm: Fix irq_overflow_left residual value bug
Reset irq_overflow_left to 0 before setting up a new timer. Without this fix, a stale irq_overflow_left value from a previous timer setup could cause incorrect timer behavior. Signed-off-by: Jay Chang <jay.chang@sifive.com> Reviewed-by: Frank Chang <frank.chang@sifive.com> Reviewed-by: Chao Liu <chao.liu.zevorn@gmail.com> Message-ID: <20260325050011.66722-2-jay.chang@sifive.com> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
Jay Chang committed
Mar 25, 2026 at 13:00 UTC
841613d24061895088c3bf74099fe9d195bc837a
1 file changed
+1
hw/riscv/riscv-iommu-hpm.c
+1
@@ -228,6 +228,7 @@ static void hpm_setup_timer(RISCVIOMMUState *s, uint64_t value)
228
}
229
230
overflow_at = (uint64_t)qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) + overflow_ns;
231
+ s->irq_overflow_left = 0;
232
233
if (overflow_at > INT64_MAX) {
234
s->irq_overflow_left = overflow_at - INT64_MAX;