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) | ... | ... |