Commit 0ecf89aae327d545af6e10defd2315c97874cbd5
1 parent
28d34b82
level triggered IRQ fix (Steve Wormley)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1078 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
3 additions
and
1 deletions
hw/i8259.c
... | ... | @@ -188,7 +188,9 @@ static inline void pic_intack(PicState *s, int irq) |
188 | 188 | } else { |
189 | 189 | s->isr |= (1 << irq); |
190 | 190 | } |
191 | - s->irr &= ~(1 << irq); | |
191 | + /* We don't clear a level sensitive interrupt here */ | |
192 | + if (!(s->elcr & (1 << irq))) | |
193 | + s->irr &= ~(1 << irq); | |
192 | 194 | } |
193 | 195 | |
194 | 196 | int cpu_get_pic_interrupt(CPUState *env) | ... | ... |