Patch "can: isotp: TX-path: ensure that CAN frame flags are initialized" has been added to the 5.10-stable tree

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

 



This is a note to let you know that I've just added the patch titled

    can: isotp: TX-path: ensure that CAN frame flags are initialized

to the 5.10-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     can-isotp-tx-path-ensure-that-can-frame-flags-are-in.patch
and it can be found in the queue-5.10 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit a26ade7317d17edf67288d8b69e993e3eee6fb96
Author: Marc Kleine-Budde <mkl@xxxxxxxxxxxxxx>
Date:   Thu Feb 18 21:24:20 2021 +0100

    can: isotp: TX-path: ensure that CAN frame flags are initialized
    
    [ Upstream commit d4eb538e1f48b3cf7bb6cb9eb39fe3e9e8a701f7 ]
    
    The previous patch ensures that the TX flags (struct
    can_isotp_ll_options::tx_flags) are 0 for classic CAN frames or a user
    configured value for CAN-FD frames.
    
    This patch sets the CAN frames flags unconditionally to the ISO-TP TX
    flags, so that they are initialized to a proper value. Otherwise when
    running "candump -x" on a classical CAN ISO-TP stream shows wrongly
    set "B" and "E" flags.
    
    | $ candump any,0:0,#FFFFFFFF -extA
    | [...]
    | can0  TX B E  713   [8]  2B 0A 0B 0C 0D 0E 0F 00
    | can0  TX B E  713   [8]  2C 01 02 03 04 05 06 07
    | can0  TX B E  713   [8]  2D 08 09 0A 0B 0C 0D 0E
    | can0  TX B E  713   [8]  2E 0F 00 01 02 03 04 05
    
    Fixes: e057dd3fc20f ("can: add ISO 15765-2:2016 transport protocol")
    Link: https://lore.kernel.org/r/20210218215434.1708249-2-mkl@xxxxxxxxxxxxxx
    Cc: Oliver Hartkopp <socketcan@xxxxxxxxxxxx>
    Signed-off-by: Marc Kleine-Budde <mkl@xxxxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/net/can/isotp.c b/net/can/isotp.c
index a9b96a6e6317..b01662d2f2cd 100644
--- a/net/can/isotp.c
+++ b/net/can/isotp.c
@@ -215,8 +215,7 @@ static int isotp_send_fc(struct sock *sk, int ae, u8 flowstatus)
 	if (ae)
 		ncf->data[0] = so->opt.ext_address;
 
-	if (so->ll.mtu == CANFD_MTU)
-		ncf->flags = so->ll.tx_flags;
+	ncf->flags = so->ll.tx_flags;
 
 	can_send_ret = can_send(nskb, 1);
 	if (can_send_ret)
@@ -790,8 +789,7 @@ isotp_tx_burst:
 		so->tx.sn %= 16;
 		so->tx.bs++;
 
-		if (so->ll.mtu == CANFD_MTU)
-			cf->flags = so->ll.tx_flags;
+		cf->flags = so->ll.tx_flags;
 
 		skb->dev = dev;
 		can_skb_set_owner(skb, sk);
@@ -934,8 +932,7 @@ static int isotp_sendmsg(struct socket *sock, struct msghdr *msg, size_t size)
 	}
 
 	/* send the first or only CAN frame */
-	if (so->ll.mtu == CANFD_MTU)
-		cf->flags = so->ll.tx_flags;
+	cf->flags = so->ll.tx_flags;
 
 	skb->dev = dev;
 	skb->sk = sk;



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux