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

Re: [Xen-devel] [PATCH v7 09/12] xen/arm: second irq injection while the first irq is still inflight



On Tue, 2014-04-08 at 16:12 +0100, Stefano Stabellini wrote:
> +    if ( lr & GICH_LR_ACTIVE )
>      {
> -        inflight = 0;
> +        /* HW interrupts cannot be ACTIVE and PENDING */
> +        if ( p->desc == NULL &&
> +             test_bit(GIC_IRQ_GUEST_ENABLED, &p->status) &&
> +             test_and_clear_bit(GIC_IRQ_GUEST_QUEUED, &p->status) )
> +            GICH[GICH_LR + i] = lr | GICH_LR_PENDING;

Do we really need to take no action for a HW interrupt here?

We leave it QUEUED and then something else later will inject another
one? What does that? Can you expand the comment to explain, "HW
interrupts cannot be ... and therefore we leave it active and later
on ..." etc.

> +    } else {
> +        spin_lock(&gic.lock);

It probably doesn't matter much, but do you need to expand the scope of
the lock or could you leave it where it was?

Ian.



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.