aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv6
diff options
context:
space:
mode:
Diffstat (limited to 'net/ipv6')
-rw-r--r--net/ipv6/tcp_ipv6.c9
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 }