summaryrefslogtreecommitdiff
path: root/drivers/net/can/dev/skb.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/can/dev/skb.c')
-rw-r--r--drivers/net/can/dev/skb.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/net/can/dev/skb.c b/drivers/net/can/dev/skb.c
index 24f782a23409..c184b4dce19e 100644
--- a/drivers/net/can/dev/skb.c
+++ b/drivers/net/can/dev/skb.c
@@ -38,7 +38,7 @@ void can_flush_echo_skb(struct net_device *dev)
* priv->echo_skb, if necessary.
*/
int can_put_echo_skb(struct sk_buff *skb, struct net_device *dev,
- unsigned int idx)
+ unsigned int idx, unsigned int frame_len)
{
struct can_priv *priv = netdev_priv(dev);
@@ -62,6 +62,9 @@ int can_put_echo_skb(struct sk_buff *skb, struct net_device *dev,
skb->ip_summed = CHECKSUM_UNNECESSARY;
skb->dev = dev;
+ /* save frame_len to reuse it when transmission is completed */
+ can_skb_prv(skb)->frame_len = frame_len;
+
/* save this skb for tx interrupt echo handling */
priv->echo_skb[idx] = skb;
} else {