]> git.baikalelectronics.ru Git - kernel.git/commit
can: isotp: fix tx state handling for echo tx processing
authorOliver Hartkopp <socketcan@hartkopp.net>
Fri, 4 Nov 2022 14:25:51 +0000 (15:25 +0100)
committerMarc Kleine-Budde <mkl@pengutronix.de>
Mon, 7 Nov 2022 13:00:27 +0000 (14:00 +0100)
commit2873f88fd7081a2a81ba442a55bfaa453511d547
tree18c0323a0f86019d4a61ac6d89788ac2fbcda70c
parent16d6a19398a6d207e52237e7e862402dba428296
can: isotp: fix tx state handling for echo tx processing

In commit deba279a4ae7 ("can: isotp: add local echo tx processing for
consecutive frames") the data flow for consecutive frames (CF) has been
reworked to improve the reliability of long data transfers.

This rework did not touch the transmission and the tx state changes of
single frame (SF) transfers which likely led to the WARN in the
isotp_tx_timer_handler() catching a wrong tx state. This patch makes use
of the improved frame processing for SF frames and sets the ISOTP_SENDING
state in isotp_sendmsg() within the cmpxchg() condition handling.

A review of the state machine and the timer handling additionally revealed
a missing echo timeout handling in the case of the burst mode in
isotp_rcv_echo() and removes a potential timer configuration uncertainty
in isotp_rcv_fc() when the receiver requests consecutive frames.

Fixes: deba279a4ae7 ("can: isotp: add local echo tx processing for consecutive frames")
Link: https://lore.kernel.org/linux-can/CAO4mrfe3dG7cMP1V5FLUkw7s+50c9vichigUMQwsxX4M=45QEw@mail.gmail.com/T/#u
Reported-by: Wei Chen <harperchen1110@gmail.com>
Cc: stable@vger.kernel.org # v6.0
Signed-off-by: Oliver Hartkopp <socketcan@hartkopp.net>
Link: https://lore.kernel.org/all/20221104142551.16924-1-socketcan@hartkopp.net
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
net/can/isotp.c