Commit 9a3ea654026c774364557eed172be30d735fe34f

Authored by pbrook
1 parent d4934d18

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 <paul@codesourcery.com>



git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6100 c046a42c-6fe2-441c-8c8c-71466251a162
Showing 1 changed file with 1 additions and 0 deletions
cpu-exec.c
... ... @@ -86,6 +86,7 @@ void cpu_resume_from_signal(CPUState *env1, void *puc)
86 86 #endif
87 87 }
88 88 #endif
  89 + env->exception_index = -1;
89 90 longjmp(env->jmp_env, 1);
90 91 }
91 92  
... ...