On Mon, Nov 04, 2024 at 05:42:40PM +0100, Marc Kleine-Budde wrote: > Commit b8e0ddd36ce9 ("can: mcp251xfd: tef: prepare to workaround > broken TEF FIFO tail index erratum") introduced > mcp251xfd_get_tef_len() to get the number of unhandled transmit events > from the Transmit Event FIFO (TEF). > > As the TEF has no head pointer, the driver uses the TX FIFO's tail > pointer instead, assuming that send frames are completed. However the > check for the TEF being full was not correct. This leads to the driver > stop working if the TEF is full. > > Fix the TEF full check by assuming that if, from the driver's point of > view, there are no free TX buffers in the chip and the TX FIFO is > empty, all messages must have been sent and the TEF must therefore be > full. > > Reported-by: Sven Schuchmann <schuchmann@xxxxxxxxxxxxxxxxx> > Closes: https://patch.msgid.link/FR3P281MB155216711EFF900AD9791B7ED9692@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx > Fixes: b8e0ddd36ce9 ("can: mcp251xfd: tef: prepare to workaround broken TEF FIFO tail index erratum") > Tested-by: Sven Schuchmann <schuchmann@xxxxxxxxxxxxxxxxx> > Cc: stable@xxxxxxxxxxxxxxx > Signed-off-by: Marc Kleine-Budde <mkl@xxxxxxxxxxxxxx> Reviewed-by: Simon Horman <horms@xxxxxxxxxx> ...