From: Maciej W. Rozycki Date: Wed, 6 May 2026 11:15:21 +0000 (+0100) Subject: MIPS: DEC: Remove IRQF_ONESHOT reference for IOASIC DMA error IRQs X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=04481cd30e8ec8b86b4dc17d0f89dd24845670a0;p=thirdparty%2Fkernel%2Flinux.git MIPS: DEC: Remove IRQF_ONESHOT reference for IOASIC DMA error IRQs 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@linutronix.de/ Reported-by: Sebastian Andrzej Siewior Signed-off-by: Maciej W. Rozycki Acked-by: Sebastian Andrzej Siewior Signed-off-by: Thomas Bogendoerfer --- diff --git a/arch/mips/dec/ioasic-irq.c b/arch/mips/dec/ioasic-irq.c index 971f7b46759b..c690ef33397f 100644 --- a/arch/mips/dec/ioasic-irq.c +++ b/arch/mips/dec/ioasic-irq.c @@ -78,10 +78,7 @@ static struct irq_chip ioasic_dma_irq_type = { * 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. */