qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] hw/intc/arm_gic: Fix NVIC assertion failure


From: Christoffer Dall
Subject: Re: [Qemu-devel] [PATCH] hw/intc/arm_gic: Fix NVIC assertion failure
Date: Tue, 18 Feb 2014 11:22:55 -0800

On 18 February 2014 09:55, Peter Maydell <address@hidden> wrote:
> 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 <address@hidden>
> ---
> Oops. I think I mentioned that NVIC should behave like 11MPcore
> in one of the rounds of code review, but then didn't spot that
> this if() had been missed. We get the checks right elsewhere.
>

That was my bad entirely.  Sorry for missing that one.

>  hw/intc/arm_gic.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/hw/intc/arm_gic.c b/hw/intc/arm_gic.c
> index 93eaa6b..955b8d4 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.
>           */
> --
> 1.8.5
>

Thanks for the fix.

Reviewed-by: Christoffer Dall <address@hidden>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]