Re: [PATCH can v3] can: mcp251xfd: mcp251xfd_get_tef_len(): fix length calculation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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>

...




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux