|
|
@@ -484,11 +484,14 @@ struct sk_buff *__can_get_echo_skb(struct net_device *dev, unsigned int idx, u8
|
|
|
BUG_ON(idx >= priv->echo_skb_max);
|
|
|
|
|
|
if (priv->echo_skb[idx]) {
|
|
|
+ /* Using "struct canfd_frame::len" for the frame
|
|
|
+ * length is supported on both CAN and CANFD frames.
|
|
|
+ */
|
|
|
struct sk_buff *skb = priv->echo_skb[idx];
|
|
|
- struct can_frame *cf = (struct can_frame *)skb->data;
|
|
|
- u8 dlc = cf->can_dlc;
|
|
|
+ struct canfd_frame *cf = (struct canfd_frame *)skb->data;
|
|
|
+ u8 len = cf->len;
|
|
|
|
|
|
- *len_ptr = dlc;
|
|
|
+ *len_ptr = len;
|
|
|
priv->echo_skb[idx] = NULL;
|
|
|
|
|
|
return skb;
|