From: pbrook Date: Fri, 19 Dec 2008 12:49:13 +0000 (+0000) Subject: When -icount is used and a TB is recompiled due to an IO access X-Git-Tag: TizenStudio_2.0_p2.3.2~208^2~13186 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9a3ea654026c774364557eed172be30d735fe34f;p=sdk%2Femulator%2Fqemu.git When -icount is used and a TB is recompiled due to an IO access shortly after an IRQ has been raised, env->exception_index will still be set to EXCP_IRQ when cpu_io_recompile calls cpu_resume_from_signal. This causes qemu to repeat the IRQ trap, with disasterous consequences. I suspect this "works" most of the time because linux tends to drop back to svc mode before doing actual IRQ processing, and be fairly tolerant of spurious IRQ traps. Signed-off-by: Paul Brook git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6100 c046a42c-6fe2-441c-8c8c-71466251a162 --- diff --git a/cpu-exec.c b/cpu-exec.c index ed1545b..0a49a7e 100644 --- a/cpu-exec.c +++ b/cpu-exec.c @@ -86,6 +86,7 @@ void cpu_resume_from_signal(CPUState *env1, void *puc) #endif } #endif + env->exception_index = -1; longjmp(env->jmp_env, 1); }