Re: [PATCH] irq: Add a new IRQF_ACK_BEFORE_UNMASK irq flag

From: Thomas Gleixner
Date: Wed Mar 12 2014 - 06:48:48 EST


On Wed, 12 Mar 2014, Russell King - ARM Linux wrote:

> On Wed, Mar 12, 2014 at 11:38:24AM +0100, Thomas Gleixner wrote:
> > If the interrupt chip has this behaviour then handle_level_irq as the
> > flow handler is the wrong thing to start with because it always acks
> > before calling the handler.
>
> This sounds like the situation with the Dove PMC irqchip too, except
> that it has the additional complication that "acking" any interrupt is
> potentially distructive to other pending interrupts, so should be done
> as infrequently as possible.

Right. I was wondering about that, but then reminded myself that the
"ack" on that chip is total clusterf*ck.

> > +void unmask_threaded_irq(struct irq_desc *desc)
> > +{
> > + struct irq_chip *chip = desc->irq_data.chip;
> > +
> > + if (chip->flags & IRQCHIP_EOI_THREADED)
> > + chip->irq_eoi(&desc->irq_data);
> > +
> > + if (chip->irq_unmask) {
> > + desc->irq_data.chip->irq_unmask(&desc->irq_data);
>
> ITYM:
> chip->irq_unmask(&desc->irq_data);

True.

Thanks,

tglx
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/