From: Peter Maydell Date: Thu, 20 Feb 2014 10:35:48 +0000 (+0000) Subject: hw/intc/arm_gic: Fix NVIC assertion failure X-Git-Tag: qemu-xen-4.5.0-rc1~181^2~29 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=873169022aa58daabd10979002f8009c7e5f3f05;p=qemu-upstream-4.5-testing.git hw/intc/arm_gic: Fix NVIC assertion failure Commit 40d225009ef accidentally changed the behaviour of gic_acknowledge_irq() for the NVIC. The NVIC doesn't have SGIs, so this meant we hit an assertion: gic_acknowledge_irq: Assertion `s->sgi_pending[irq][cpu] != 0' failed. Return NVIC acknowledge-irq to its previous behaviour, like 11MPCore. Signed-off-by: Peter Maydell Reviewed-by: Christoffer Dall --- diff --git a/hw/intc/arm_gic.c b/hw/intc/arm_gic.c index 93eaa6b2f..955b8d494 100644 --- a/hw/intc/arm_gic.c +++ b/hw/intc/arm_gic.c @@ -189,7 +189,7 @@ uint32_t gic_acknowledge_irq(GICState *s, int cpu) } s->last_active[irq][cpu] = s->running_irq[cpu]; - if (s->revision == REV_11MPCORE) { + if (s->revision == REV_11MPCORE || s->revision == REV_NVIC) { /* Clear pending flags for both level and edge triggered interrupts. * Level triggered IRQs will be reasserted once they become inactive. */