diff options
Diffstat (limited to 'net/core/sock.c')
| -rw-r--r-- | net/core/sock.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/net/core/sock.c b/net/core/sock.c index 8f67ced8d6a8..305792076121 100644 --- a/net/core/sock.c +++ b/net/core/sock.c | |||
| @@ -1523,7 +1523,14 @@ EXPORT_SYMBOL(sock_rfree); | |||
| 1523 | 1523 | ||
| 1524 | void sock_edemux(struct sk_buff *skb) | 1524 | void sock_edemux(struct sk_buff *skb) |
| 1525 | { | 1525 | { |
| 1526 | sock_put(skb->sk); | 1526 | struct sock *sk = skb->sk; |
| 1527 | |||
| 1528 | #ifdef CONFIG_INET | ||
| 1529 | if (sk->sk_state == TCP_TIME_WAIT) | ||
| 1530 | inet_twsk_put(inet_twsk(sk)); | ||
| 1531 | else | ||
| 1532 | #endif | ||
| 1533 | sock_put(sk); | ||
| 1527 | } | 1534 | } |
| 1528 | EXPORT_SYMBOL(sock_edemux); | 1535 | EXPORT_SYMBOL(sock_edemux); |
| 1529 | 1536 | ||
