diff options
author | guoyin.chen <guoyin.chen@freescale.com> | 2013-04-17 13:17:30 +0800 |
---|---|---|
committer | guoyin.chen <guoyin.chen@freescale.com> | 2013-04-17 13:17:30 +0800 |
commit | 3b9608406bb699de5ff02760c745e62212b4c280 (patch) | |
tree | 1cedd6fff5d0c2f512cee15f74fb9dc867b7e328 /drivers/net/can/dev.c | |
parent | bc275dcec0026997a8a8b685ce65c6f766ff38ce (diff) | |
parent | 556681e28fda1c92eb2178306904a7df87f37449 (diff) |
Merge remote-tracking branch 'fsl-linux-sdk/imx_3.0.35_4.0.0' into imx_3.0.35_androidjb4.2.2_1.0.0-ga
Diffstat (limited to 'drivers/net/can/dev.c')
-rw-r--r-- | drivers/net/can/dev.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/net/can/dev.c b/drivers/net/can/dev.c index d0f8c7e67e7d..f0123ef7d89d 100644 --- a/drivers/net/can/dev.c +++ b/drivers/net/can/dev.c @@ -315,16 +315,24 @@ EXPORT_SYMBOL_GPL(can_put_echo_skb); * is handled in the device driver. The driver must protect * access to priv->echo_skb, if necessary. */ -void can_get_echo_skb(struct net_device *dev, unsigned int idx) +unsigned int can_get_echo_skb(struct net_device *dev, unsigned int idx) { struct can_priv *priv = netdev_priv(dev); BUG_ON(idx >= priv->echo_skb_max); if (priv->echo_skb[idx]) { + struct sk_buff *skb = priv->echo_skb[idx]; + struct can_frame *cf = (struct can_frame *)skb->data; + u8 dlc = cf->can_dlc; + netif_rx(priv->echo_skb[idx]); priv->echo_skb[idx] = NULL; + + return dlc; } + + return 0; } EXPORT_SYMBOL_GPL(can_get_echo_skb); |