diff options
Diffstat (limited to 'net/ipv6/tcp_ipv6.c')
| -rw-r--r-- | net/ipv6/tcp_ipv6.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c index 0b51ec310ebe..1c21ad66cfad 100644 --- a/net/ipv6/tcp_ipv6.c +++ b/net/ipv6/tcp_ipv6.c | |||
| @@ -521,7 +521,7 @@ unique: | |||
| 521 | NET_INC_STATS_BH(LINUX_MIB_TIMEWAITRECYCLED); | 521 | NET_INC_STATS_BH(LINUX_MIB_TIMEWAITRECYCLED); |
| 522 | } else if (tw) { | 522 | } else if (tw) { |
| 523 | /* Silly. Should hash-dance instead... */ | 523 | /* Silly. Should hash-dance instead... */ |
| 524 | tcp_tw_deschedule(tw); | 524 | inet_twsk_deschedule(tw, &tcp_death_row); |
| 525 | NET_INC_STATS_BH(LINUX_MIB_TIMEWAITRECYCLED); | 525 | NET_INC_STATS_BH(LINUX_MIB_TIMEWAITRECYCLED); |
| 526 | 526 | ||
| 527 | inet_twsk_put(tw); | 527 | inet_twsk_put(tw); |
| @@ -611,7 +611,7 @@ ok: | |||
| 611 | spin_unlock(&head->lock); | 611 | spin_unlock(&head->lock); |
| 612 | 612 | ||
| 613 | if (tw) { | 613 | if (tw) { |
| 614 | tcp_tw_deschedule(tw); | 614 | inet_twsk_deschedule(tw, &tcp_death_row); |
| 615 | inet_twsk_put(tw); | 615 | inet_twsk_put(tw); |
| 616 | } | 616 | } |
| 617 | 617 | ||
| @@ -1820,8 +1820,9 @@ do_time_wait: | |||
| 1820 | 1820 | ||
| 1821 | sk2 = tcp_v6_lookup_listener(&skb->nh.ipv6h->daddr, ntohs(th->dest), tcp_v6_iif(skb)); | 1821 | sk2 = tcp_v6_lookup_listener(&skb->nh.ipv6h->daddr, ntohs(th->dest), tcp_v6_iif(skb)); |
| 1822 | if (sk2 != NULL) { | 1822 | if (sk2 != NULL) { |
| 1823 | tcp_tw_deschedule((struct inet_timewait_sock *)sk); | 1823 | struct inet_timewait_sock *tw = inet_twsk(sk); |
| 1824 | inet_twsk_put((struct inet_timewait_sock *)sk); | 1824 | inet_twsk_deschedule(tw, &tcp_death_row); |
| 1825 | inet_twsk_put(tw); | ||
| 1825 | sk = sk2; | 1826 | sk = sk2; |
| 1826 | goto process; | 1827 | goto process; |
| 1827 | } | 1828 | } |
