[PATCH] MIPS: DEC: Remove IRQF_ONESHOT reference for IOASIC DMA error IRQs

From: Maciej W. Rozycki

Date: Wed May 06 2026 - 07:15:35 EST


There is no need for IOASIC DMA error interrupts to use the IRQF_ONESHOT
flag, because while they do need to have the source cleared only at the
conclusion of handling, the action handler supplied is either run in the
hardirq context with interrupts disabled at the CPU level or, where IRQ
threading has been forced, the primary handler has the IRQF_ONESHOT flag
implicitly added and therefore the original action handler, now run as
the thread handler and with interrupts enabled in the CPU, is executed
with the originating interrupt line masked. Therefore no interrupt will
retrigger regardless until the original request has been handled.

Link: https://lore.kernel.org/r/20260127135334.qUEaYP9G@xxxxxxxxxxxxx/
Reported-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx>
Signed-off-by: Maciej W. Rozycki <macro@xxxxxxxxxxx>
---
arch/mips/dec/ioasic-irq.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)

linux-dec-ioasic-irq-irqf-oneshot.diff
Index: linux-macro/arch/mips/dec/ioasic-irq.c
===================================================================
--- linux-macro.orig/arch/mips/dec/ioasic-irq.c
+++ linux-macro/arch/mips/dec/ioasic-irq.c
@@ -78,10 +78,7 @@ static struct irq_chip ioasic_dma_irq_ty
* cleared. This cannot be done until after a corrective action has been
* taken and this also means they will not retrigger. Therefore they use
* the `handle_fasteoi_irq' handler that only clears the request on the
- * way out. Because MIPS processor interrupt inputs, one of which the I/O
- * ASIC is cascaded to, are level-triggered it is recommended that error
- * DMA interrupt action handlers are registered with the IRQF_ONESHOT flag
- * set so that they are run with the interrupt line masked.
+ * way out.
*
* This mask has `1' bits in the positions of informational interrupts.
*/