diff options
Diffstat (limited to 'drivers/net/can/dev.c')
| -rw-r--r-- | drivers/net/can/dev.c | 15 | 
1 files changed, 3 insertions, 12 deletions
diff --git a/drivers/net/can/dev.c b/drivers/net/can/dev.c index 13a909822e25..fc59bc6f040b 100644 --- a/drivers/net/can/dev.c +++ b/drivers/net/can/dev.c @@ -323,19 +323,10 @@ void can_put_echo_skb(struct sk_buff *skb, struct net_device *dev,  	}  	if (!priv->echo_skb[idx]) { -		struct sock *srcsk = skb->sk; -		if (atomic_read(&skb->users) != 1) { -			struct sk_buff *old_skb = skb; - -			skb = skb_clone(old_skb, GFP_ATOMIC); -			kfree_skb(old_skb); -			if (!skb) -				return; -		} else -			skb_orphan(skb); - -		skb->sk = srcsk; +		skb = can_create_echo_skb(skb); +		if (!skb) +			return;  		/* make settings for echo to reduce code in irq context */  		skb->protocol = htons(ETH_P_CAN);  | 
