Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 12 Oct 2011 19:52:24 +0000 (UTC)
From:      Navdeep Parhar <np@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r226318 - head/sys/netinet
Message-ID:  <201110121952.p9CJqOhG081504@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: np
Date: Wed Oct 12 19:52:23 2011
New Revision: 226318
URL: http://svn.freebsd.org/changeset/base/226318

Log:
  Make sure the inp wasn't dropped when rexmt let go of the inp and
  pcbinfo locks.
  
  Reviewed by:	andre@
  MFC after:	7 days

Modified:
  head/sys/netinet/tcp_timer.c

Modified: head/sys/netinet/tcp_timer.c
==============================================================================
--- head/sys/netinet/tcp_timer.c	Wed Oct 12 19:25:12 2011	(r226317)
+++ head/sys/netinet/tcp_timer.c	Wed Oct 12 19:52:23 2011	(r226318)
@@ -495,6 +495,13 @@ tcp_timer_rexmt(void * xtp)
 			CURVNET_RESTORE();
 			return;
 		}
+		if (inp->inp_flags & INP_DROPPED) {
+			INP_WUNLOCK(inp);
+			INP_INFO_WUNLOCK(&V_tcbinfo);
+			CURVNET_RESTORE();
+			return;
+		}
+
 		tp = tcp_drop(tp, tp->t_softerror ?
 			      tp->t_softerror : ETIMEDOUT);
 		headlocked = 1;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201110121952.p9CJqOhG081504>