]> 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)
commit53b2949e4de2e97aaeec3433ce84ba188893e96e
tree90f9f0f6d51e1182398dd5db0d988a49f376c312
parent6e1528c1e04cc1732be42b33ffe1896d0d6a9376
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: 15c73136c866 ("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