can: mcp251xfd: mcp251xfd_irq(): add missing can_rx_offload_threaded_irq_finish() in case of bus off
The function can_rx_offload_threaded_irq_finish() is needed to trigger
the NAPI thread to deliver read CAN frames to the networking stack.
This patch adds the missing call to can_rx_offload_threaded_irq_finish()
in case of a bus off, before leaving the interrupt handler to avoid
packet starvation.
Link: https://lore.kernel.org/all/20211106201526.44292-1-mkl@pengutronix.de
Fixes: 30bfec4fec
("can: rx-offload: can_rx_offload_threaded_irq_finish(): add new function to be called from threaded interrupt")
Cc: stable@vger.kernel.org
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
This commit is contained in:
parent
6b78ba3e51
commit
691204bd66
@ -2290,8 +2290,10 @@ static irqreturn_t mcp251xfd_irq(int irq, void *dev_id)
|
||||
* check will fail, too. So leave IRQ handler
|
||||
* directly.
|
||||
*/
|
||||
if (priv->can.state == CAN_STATE_BUS_OFF)
|
||||
if (priv->can.state == CAN_STATE_BUS_OFF) {
|
||||
can_rx_offload_threaded_irq_finish(&priv->offload);
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
}
|
||||
|
||||
handled = IRQ_HANDLED;
|
||||
|
Loading…
Reference in New Issue
Block a user