On Mon, Feb 04, 2019 at 04:38:53PM -0500, John David Anglin wrote: > On 2019-02-04 3:19 p.m., Andrew Lunn wrote: > > The IRQ core would do this if it was needed. > > > > How many other irq thread work functions can you point to which do > > something similar? > This is comment for handle_edge_irq: > > /** > * handle_edge_irq - edge type IRQ handler > * @desc: the interrupt description structure for this irq > * > * Interrupt occures on the falling and/or rising edge of a hardware > * signal. The occurrence is latched into the irq controller hardware > * and must be acked in order to be reenabled. After the ack another > * interrupt can happen on the same source even before the first one > * is handled by the associated event handler. If this happens it > * might be necessary to disable (mask) the interrupt depending on the > * controller hardware. This requires to reenable the interrupt inside > * of the loop which handles the interrupts which have arrived while > * the handler was running. If all pending interrupts are handled, the > * loop is left. > */ > > As can be seen, the above comment suggests that it may be necessary to > disable (mask) interrupt > as I proposed.
Hi Dave This comment is describing what handle_edge_irq() actually does. Read the code. It does not say anything about that the handling thread function should do. Andrew