target/arm/hvf: Keep calling hv_vcpu_run() in loop

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Mads Ynddal <mads@ynddal.dk>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
Philippe Mathieu-Daudé 2025-10-28 06:41:56 +01:00 committed by Peter Maydell
parent 4d03dca568
commit 93ac765076

View file

@ -2013,17 +2013,18 @@ int hvf_arch_vcpu_exec(CPUState *cpu)
int ret;
hv_return_t r;
if (!(cpu->singlestep_enabled & SSTEP_NOIRQ) &&
hvf_inject_interrupts(cpu)) {
return EXCP_INTERRUPT;
}
if (cpu->halted) {
return EXCP_HLT;
}
flush_cpu_state(cpu);
do {
if (!(cpu->singlestep_enabled & SSTEP_NOIRQ) &&
hvf_inject_interrupts(cpu)) {
return EXCP_INTERRUPT;
}
bql_unlock();
r = hv_vcpu_run(cpu->accel->fd);
bql_lock();
@ -2037,6 +2038,7 @@ int hvf_arch_vcpu_exec(CPUState *cpu)
default:
g_assert_not_reached();
}
} while (ret == 0);
return ret;
}