Thread (5 messages) 5 messages, 2 authors, 2017-10-19

[PATCH 2/2] can: usb: esd_usb2: Fix can_dlc value for received RTR, frames

From: Stefan Mätje <Stefan.Maetje@esd.eu>
Date: 2017-10-18 11:25:26
Subsystem: can network drivers, the rest · Maintainers: Marc Kleine-Budde, Vincent Mailhol, Linus Torvalds

The dlc member of the struct rx_msg contains also the ESD_RTR flag to mark
received RTR frames. Without the fix the can_dlc value for received RTR
frames would always be set to 8 by get_can_dlc() instead of the received
value.

Signed-off-by: Stefan Mätje <stefan.maetje@esd.eu>
---
 drivers/net/can/usb/esd_usb2.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/can/usb/esd_usb2.c b/drivers/net/can/usb/esd_usb2.c
index 6183b7707ad7..20f2aa21677f 100644
--- a/drivers/net/can/usb/esd_usb2.c
+++ b/drivers/net/can/usb/esd_usb2.c
@@ -49,7 +49,7 @@ MODULE_LICENSE("GPL v2");
 #define CMD_IDADD              6 /* also used for IDADD_REPLY */

 /* esd CAN message flags - dlc field */
-#define ESD_RTR                        0x10
+#define ESD_RTR                        0x10u

 /* esd CAN message flags - id field */
 #define ESD_EXTID              0x20000000
@@ -334,7 +334,7 @@ static void esd_usb2_rx_can_msg(struct
esd_usb2_net_priv *priv,
                }

                cf->can_id = id & ESD_IDMASK;
-               cf->can_dlc = get_can_dlc(msg->msg.rx.dlc);
+               cf->can_dlc = get_can_dlc(msg->msg.rx.dlc & ~ESD_RTR);

                if (id & ESD_EXTID)
                        cf->can_id |= CAN_EFF_FLAG;
-- 
2.11.0

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help