X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;ds=sidebyside;f=net%2Fcore%2Fskbuff.c;h=b1be7c01efe269d2bc97be7dcd1cc5485d29fa7b;hb=74030603dfd9f76c0f279f19f1dd1ee3028fee7a;hp=346d3e85dfbc2eca1ded0442ecb78d31e1768523;hpb=f94c128eefcce2e3448d543f13cd7d7b8aa660a5;p=karo-tx-linux.git diff --git a/net/core/skbuff.c b/net/core/skbuff.c index 346d3e85dfbc..b1be7c01efe2 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -3754,8 +3754,11 @@ struct sk_buff *sock_dequeue_err_skb(struct sock *sk) spin_lock_irqsave(&q->lock, flags); skb = __skb_dequeue(q); - if (skb && (skb_next = skb_peek(q))) + if (skb && (skb_next = skb_peek(q))) { icmp_next = is_icmp_err_skb(skb_next); + if (icmp_next) + sk->sk_err = SKB_EXT_ERR(skb_next)->ee.ee_origin; + } spin_unlock_irqrestore(&q->lock, flags); if (is_icmp_err_skb(skb) && !icmp_next)