Skip to content

Commit 9ad1da1

Browse files
oleremmarckleinebudde
authored andcommitted
net: can: j1939: recover socket queue on CAN bus error during BAM transmission
Addresses an issue where a CAN bus error during a BAM transmission could stall the socket queue, preventing further transmissions even after the bus error is resolved. The fix activates the next queued session after the error recovery, allowing communication to continue. Fixes: 9d71dd0 ("can: add support of SAE J1939 protocol") Cc: stable@vger.kernel.org Reported-by: Alexander Hölzl <alexander.hoelzl@gmx.net> Tested-by: Alexander Hölzl <alexander.hoelzl@gmx.net> Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> Link: https://lore.kernel.org/all/20240528070648.1947203-1-o.rempel@pengutronix.de Cc: stable@vger.kernel.org Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
1 parent b7cdf1d commit 9ad1da1

1 file changed

Lines changed: 2 additions & 0 deletions

File tree

net/can/j1939/transport.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1696,6 +1696,8 @@ static int j1939_xtp_rx_rts_session_active(struct j1939_session *session,
16961696

16971697
j1939_session_timers_cancel(session);
16981698
j1939_session_cancel(session, J1939_XTP_ABORT_BUSY);
1699+
if (session->transmission)
1700+
j1939_session_deactivate_activate_next(session);
16991701

17001702
return -EBUSY;
17011703
}

0 commit comments

Comments
 (0)