[kvm-unit-tests PATCH v6 07/14] arm64: micro-bench: fix timer IRQ
Joey Gouly
joey.gouly at arm.com
Fri Jan 23 08:50:46 PST 2026
Enable the correct (hvtimer) IRQ when at EL2.
Signed-off-by: Joey Gouly <joey.gouly at arm.com>
Reviewed-by: Alexandru Elisei <alexandru.elisei at arm.com>
Acked-by: Marc Zyngier <maz at kernel.org>
Reviewed-by: Eric Auger <eric.auger at redhat.com>
---
arm/micro-bench.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/arm/micro-bench.c b/arm/micro-bench.c
index 22408955..f47c5fc1 100644
--- a/arm/micro-bench.c
+++ b/arm/micro-bench.c
@@ -42,7 +42,7 @@ static void gic_irq_handler(struct pt_regs *regs)
irq_received = true;
gic_write_eoir(irqstat);
- if (irqstat == TIMER_VTIMER_IRQ) {
+ if (irqstat == TIMER_VTIMER_IRQ || irqstat == TIMER_HVTIMER_IRQ) {
write_sysreg((ARCH_TIMER_CTL_IMASK | ARCH_TIMER_CTL_ENABLE),
cntv_ctl_el0);
isb();
@@ -215,7 +215,11 @@ static bool timer_prep(void)
install_irq_handler(EL1H_IRQ, gic_irq_handler);
local_irq_enable();
- gic_enable_irq(TIMER_VTIMER_IRQ);
+ if (current_level() == CurrentEL_EL1)
+ gic_enable_irq(TIMER_VTIMER_IRQ);
+ else
+ gic_enable_irq(TIMER_HVTIMER_IRQ);
+
write_sysreg(ARCH_TIMER_CTL_IMASK | ARCH_TIMER_CTL_ENABLE, cntv_ctl_el0);
isb();
--
2.25.1
More information about the linux-arm-kernel
mailing list