Re: [PATCH] net: phylink: dsa: mv88e6xxx: Revise irq setup ordering
From: Andrew Lunn <andrew@lunn.ch>
Date: 2019-02-04 22:47:37
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:quoted
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