diff options
| author | David S. Miller <davem@davemloft.net> | 2011-05-19 15:55:45 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2011-05-19 15:55:45 -0400 |
| commit | 6b60d7b9df727726dfb7e59ca0a7caf14e81e0a2 (patch) | |
| tree | 8a10fdde837d105b9cd6f5d59dc0fa31081236ee /net | |
| parent | a48eff128865aa20520fa6e0e0c5fbd2ac50d712 (diff) | |
| parent | abb57ea48fd9431fa320a5c55f73e6b5a44c2efb (diff) | |
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Diffstat (limited to 'net')
| -rw-r--r-- | net/core/skbuff.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/net/core/skbuff.c b/net/core/skbuff.c index 7ebeed0a877c..3e934fe96f29 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c | |||
| @@ -2993,6 +2993,9 @@ int sock_queue_err_skb(struct sock *sk, struct sk_buff *skb) | |||
| 2993 | skb->destructor = sock_rmem_free; | 2993 | skb->destructor = sock_rmem_free; |
| 2994 | atomic_add(skb->truesize, &sk->sk_rmem_alloc); | 2994 | atomic_add(skb->truesize, &sk->sk_rmem_alloc); |
| 2995 | 2995 | ||
| 2996 | /* before exiting rcu section, make sure dst is refcounted */ | ||
| 2997 | skb_dst_force(skb); | ||
| 2998 | |||
| 2996 | skb_queue_tail(&sk->sk_error_queue, skb); | 2999 | skb_queue_tail(&sk->sk_error_queue, skb); |
| 2997 | if (!sock_flag(sk, SOCK_DEAD)) | 3000 | if (!sock_flag(sk, SOCK_DEAD)) |
| 2998 | sk->sk_data_ready(sk, skb->len); | 3001 | sk->sk_data_ready(sk, skb->len); |
