]> git.hungrycats.org Git - linux/commitdiff
can: j1939: cancel rxtimer on multipacket broadcast session complete
authorZhang Changzhong <zhangchangzhong@huawei.com>
Wed, 5 Aug 2020 03:50:23 +0000 (11:50 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 26 Aug 2020 09:42:17 +0000 (11:42 +0200)
[ 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@huawei.com>
Link: https://lore.kernel.org/r/1596599425-5534-3-git-send-email-zhangchangzhong@huawei.com
Acked-by: Oleksij Rempel <o.rempel@pengutronix.de>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
net/can/j1939/transport.c

index 67189b4c482c51b6a865eb8213b319d38d66e3b3..d1a9adde677b0a513417e1408784dfa28fd1da04 100644 (file)
@@ -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);