diff --git a/[refs] b/[refs] index b4e25a97bce8..233a8e458244 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 23dbe7912dad6be71bb9e69cb819d05e2442d362 +refs/heads/master: 8f182b494f87799d6ae20a1401825c516da46081 diff --git a/trunk/net/llc/llc_input.c b/trunk/net/llc/llc_input.c index cb9f7f058f75..32cf8ac8ea80 100644 --- a/trunk/net/llc/llc_input.c +++ b/trunk/net/llc/llc_input.c @@ -173,8 +173,10 @@ int llc_rcv(struct sk_buff *skb, struct net_device *dev, */ rcv = rcu_dereference(sap->rcv_func); if (rcv) { + struct sk_buff *cskb = skb_clone(skb, GFP_ATOMIC); + if (cskb) + rcv(cskb, dev, pt, orig_dev); rcv(skb, dev, pt, orig_dev); - goto out_put; } dest = llc_pdu_type(skb); if (unlikely(!dest || !llc_type_handlers[dest - 1]))