From: NDNF <arkaisp2...@gmail.com> Only one interrupt is in progress at the moment.It is necessary to set to reset interrupt_request only after all interrupts have been executed
Signed-off-by: Arkasha <ivanovrka...@gmail.com> --- target/avr/helper.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/target/avr/helper.c b/target/avr/helper.c index 65880b9928..9f20cc198e 100644 --- a/target/avr/helper.c +++ b/target/avr/helper.c @@ -49,7 +49,9 @@ bool avr_cpu_exec_interrupt(CPUState *cs, int interrupt_request) cc->tcg_ops->do_interrupt(cs); env->intsrc &= env->intsrc - 1; /* clear the interrupt */ - cs->interrupt_request &= ~CPU_INTERRUPT_HARD; + if (!env->intsrc) { + cs->interrupt_request &= ~CPU_INTERRUPT_HARD; + } ret = true; } -- 2.17.1