[PATCH RFC 2/2] can: mcp251xfd: mcp251xfd_irq(): add call to can_rx_offload_threaded_irq_flush()
From: Marc Kleine-Budde
Date: Mon Oct 05 2026 - 06:41:07 EST
Under certain load situations, the threaded IRQ handler will not exit
the while loop, resulting in unlimited growth of the
offload->skb_irq_queue.
Call into the newly added function can_rx_offload_threaded_irq_flush()
to flush parts of the offload->skb_irq_queue.
Signed-off-by: Marc Kleine-Budde <mkl@xxxxxxxxxxxxxx>
---
drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c b/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
index f441f2265299..208595c0cc46 100644
--- a/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
+++ b/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
@@ -1615,6 +1615,7 @@ static irqreturn_t mcp251xfd_irq(int irq, void *dev_id)
}
}
+ can_rx_offload_threaded_irq_flush(&priv->offload);
handled = IRQ_HANDLED;
} while (1);
--
2.53.0