diff options
Diffstat (limited to 'hw/intc')
-rw-r--r-- | hw/intc/arm_gic.c | 3 | ||||
-rw-r--r-- | hw/intc/etraxfs_pic.c | 8 |
2 files changed, 7 insertions, 4 deletions
diff --git a/hw/intc/arm_gic.c b/hw/intc/arm_gic.c index 270ce05b58..a04c822832 100644 --- a/hw/intc/arm_gic.c +++ b/hw/intc/arm_gic.c @@ -704,7 +704,8 @@ static void gic_cpu_write(GICState *s, int cpu, int offset, uint32_t value) s->bpr[cpu] = (value & 0x7); break; case 0x10: /* End Of Interrupt */ - return gic_complete_irq(s, cpu, value & 0x3ff); + gic_complete_irq(s, cpu, value & 0x3ff); + return; case 0x1c: /* Aliased Binary Point */ if (s->revision >= 2) { s->abpr[cpu] = (value & 0x7); diff --git a/hw/intc/etraxfs_pic.c b/hw/intc/etraxfs_pic.c index 636262b49f..bd588681ef 100644 --- a/hw/intc/etraxfs_pic.c +++ b/hw/intc/etraxfs_pic.c @@ -131,11 +131,13 @@ static void nmi_handler(void *opaque, int irq, int level) } static void irq_handler(void *opaque, int irq, int level) -{ +{ struct etrax_pic *fs = (void *)opaque; - if (irq >= 30) - return nmi_handler(opaque, irq, level); + if (irq >= 30) { + nmi_handler(opaque, irq, level); + return; + } irq -= 1; fs->regs[R_R_VECT] &= ~(1 << irq); |