[PATCH 5.8 093/148] can: j1939: cancel rxtimer on multipacket broadcast session complete

From: Greg Kroah-Hartman
Date: Mon Aug 24 2020 - 04:36:00 EST


From: Zhang Changzhong <zhangchangzhong@xxxxxxxxxx>

[ Upstream commit e8b17653088f28a87c81845fa41a2d295a3b458c ]

If j1939_xtp_rx_dat_one() receive last frame of multipacket broadcast message,
j1939_session_timers_cancel() should be called to cancel rxtimer.

Fixes: 9d71dd0c7009 ("can: add support of SAE J1939 protocol")
Signed-off-by: Zhang Changzhong <zhangchangzhong@xxxxxxxxxx>
Link: https://lore.kernel.org/r/1596599425-5534-3-git-send-email-zhangchangzhong@xxxxxxxxxx
Acked-by: Oleksij Rempel <o.rempel@xxxxxxxxxxxxxx>
Signed-off-by: Marc Kleine-Budde <mkl@xxxxxxxxxxxxxx>
Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>
---
net/can/j1939/transport.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/net/can/j1939/transport.c b/net/can/j1939/transport.c
index 67189b4c482c5..d1a9adde677b0 100644
--- a/net/can/j1939/transport.c
+++ b/net/can/j1939/transport.c
@@ -1811,6 +1811,7 @@ static void j1939_xtp_rx_dat_one(struct j1939_session *session,
}

if (final) {
+ j1939_session_timers_cancel(session);
j1939_session_completed(session);
} else if (do_cts_eoma) {
j1939_tp_set_rxtimeout(session, 1250);
--
2.25.1