can: dev: can_put_echo_skb(): extend to handle frame_len
[linux-2.6-microblaze.git] / drivers / net / can / dev / skb.c
index 24f782a..c184b4d 100644 (file)
@@ -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 {