kernel - Revert last commit for a better upcoming fix
authorMatthew Dillon <dillon@apollo.backplane.com>
Mon, 31 Jan 2011 01:39:24 +0000 (17:39 -0800)
committerMatthew Dillon <dillon@apollo.backplane.com>
Mon, 31 Jan 2011 01:39:24 +0000 (17:39 -0800)
* Revert this fix, a better one is going to be committed soon.

sys/netinet/tcp_subr.c

index 524207f..b6e61b9 100644 (file)
@@ -951,24 +951,17 @@ no_valid_rt:
                FREE(q, M_TSEGQ);
                atomic_add_int(&tcp_reass_qsize, -1);
        }
-       /*
-        * Throw away SACK blocks in scoreboard
-        */
+       /* throw away SACK blocks in scoreboard*/
        if (TCP_DO_SACK(tp))
                tcp_sack_cleanup(&tp->scb);
 
-       /*
-        * Indicate a disconnected state.  The PCB is detached later on.
-        *
-        * NOTE: We do not clear inp->inp_ppcb until after the syncache
-        *       has been destroyed, else we risk racing syncache completions
-        *       on another cpu which need to dive the listen socket's tcpcb.
-        */
+       inp->inp_ppcb = NULL;
        soisdisconnected(so);
+       /* note: pcb detached later on */
+
        tcp_destroy_timermsg(tp);
        if (tp->t_flags & TF_SYNCACHE)
                syncache_destroy(tp);
-       inp->inp_ppcb = NULL;
 
        /*
         * Discard the inp.  In the SMP case a wildcard inp's hash (created