Commit 006f51e004 for qemu.org
commit 006f51e004118ae7a78632faa64b1fb5f6fb5a83
Author: Brian Cain <brian.cain@oss.qualcomm.com>
Date: Thu Sep 3 11:56:17 2026 -0700
target/hexagon: kick vCPU when re-asserting interrupts
hex_interrupt_update() used cpu_resume() to make a halted vCPU notice a
newly pending interrupt. cpu_resume() is meant for a vCPU stopped by the
vm-state machinery: besides kicking the thread it clears cpu->stop and
cpu->stopped, and resets exception_index to -1. Clearing the stop flags
can undo a pause requested via the monitor or by migration, and resetting
exception_index discards an exception the vCPU had already latched.
Only the kick is wanted here, so call qemu_cpu_kick() directly.
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
Signed-off-by: Brian Cain <brian.cain@oss.qualcomm.com>
diff --git a/target/hexagon/hex_interrupts.c b/target/hexagon/hex_interrupts.c
index 7dde1294b2..2b2834af95 100644
--- a/target/hexagon/hex_interrupts.c
+++ b/target/hexagon/hex_interrupts.c
@@ -441,7 +441,7 @@ void hex_interrupt_update(CPUHexagonState *env)
const int exe_mode = get_exe_mode(hex_env);
if (exe_mode != HEX_EXE_MODE_OFF) {
cpu_interrupt(cs, CPU_INTERRUPT_SWI);
- cpu_resume(cs);
+ qemu_cpu_kick(cs);
}
}
}