]> git.baikalelectronics.ru Git - kernel.git/commit
can: m_can: m_can_rx_peripheral(): fix RX being blocked by errors
authorTorin Cooper-Bennun <torin@maxiluxsystems.com>
Wed, 3 Mar 2021 14:43:51 +0000 (14:43 +0000)
committerMarc Kleine-Budde <mkl@pengutronix.de>
Tue, 16 Mar 2021 07:41:27 +0000 (08:41 +0100)
commit3870289c71f5be83f48923a21952421c825e2bf9
tree90f9f0f6d51e1182398dd5db0d988a49f376c312
parent6ff72e11de54d3e82f1b554e2bf12cc5ff599974
can: m_can: m_can_rx_peripheral(): fix RX being blocked by errors

For M_CAN peripherals, m_can_rx_handler() was called with quota = 1,
which caused any error handling to block RX from taking place until
the next time the IRQ handler is called. This had been observed to
cause RX to be blocked indefinitely in some cases.

This is fixed by calling m_can_rx_handler with a sensibly high quota.

Fixes: 0b2c8dae4b28 ("can: m_can: Create a m_can platform framework")
Link: https://lore.kernel.org/r/20210303144350.4093750-1-torin@maxiluxsystems.com
Suggested-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Torin Cooper-Bennun <torin@maxiluxsystems.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
drivers/net/can/m_can/m_can.c