diff options
| author | Robert Watson <rwatson@FreeBSD.org> | 2004-07-12 19:28:07 +0000 |
|---|---|---|
| committer | Robert Watson <rwatson@FreeBSD.org> | 2004-07-12 19:28:07 +0000 |
| commit | 7cfc6904408b8b8516ed5867f6082588aa6ff9dd (patch) | |
| tree | 86957ec8b07268f7283d186d9336ee22f1919c4c /sys/netinet/tcp_input.c | |
| parent | 8375a14422307f53450e31d3bf728f6146297598 (diff) | |
Notes
Diffstat (limited to 'sys/netinet/tcp_input.c')
| -rw-r--r-- | sys/netinet/tcp_input.c | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c index 78b1fadcfba7..ffde973aa037 100644 --- a/sys/netinet/tcp_input.c +++ b/sys/netinet/tcp_input.c @@ -985,6 +985,8 @@ findpcb: goto drop; } after_listen: + KASSERT(headlocked, ("tcp_input(): after_listen head is not locked")); + INP_LOCK_ASSERT(inp); /* XXX temp debugging */ /* should not happen - syncache should pick up these connections */ @@ -1472,6 +1474,10 @@ after_listen: } trimthenstep6: + KASSERT(headlocked, + ("tcp_input(): trimthenstep6 head is not locked")); + INP_LOCK_ASSERT(inp); + /* * Advance th->th_seq to correspond to first data byte. * If data, trim to stay within window, @@ -2081,6 +2087,10 @@ trimthenstep6: } process_ACK: + KASSERT(headlocked, + ("tcp_input(): process_ACK head is not locked")); + INP_LOCK_ASSERT(inp); + acked = th->th_ack - tp->snd_una; tcpstat.tcps_rcvackpack++; tcpstat.tcps_rcvackbyte += acked; @@ -2261,6 +2271,9 @@ process_ACK: } step6: + KASSERT(headlocked, ("tcp_input(): step6 head is not locked")); + INP_LOCK_ASSERT(inp); + /* * Update window information. * Don't look at window if no ACK: TAC's send garbage on first SYN. @@ -2343,7 +2356,9 @@ step6: tp->rcv_up = tp->rcv_nxt; } dodata: /* XXX */ - KASSERT(headlocked, ("headlocked")); + KASSERT(headlocked, ("tcp_input(): dodata head is not locked")); + INP_LOCK_ASSERT(inp); + /* * Process the segment text, merging it into the TCP sequencing queue, * and arranging for acknowledgment of receipt if necessary. @@ -2479,6 +2494,7 @@ dodata: /* XXX */ (void) tcp_output(tp); check_delack: + INP_LOCK_ASSERT(inp); if (tp->t_flags & TF_DELACK) { tp->t_flags &= ~TF_DELACK; callout_reset(tp->tt_delack, tcp_delacktime, |
