Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 23 Aug 2020 22:19:39 +0000 (UTC)
From:      Michael Tuexen <tuexen@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org
Subject:   svn commit: r364570 - stable/12/sys/netinet
Message-ID:  <202008232219.07NMJdVd092594@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: tuexen
Date: Sun Aug 23 22:19:39 2020
New Revision: 364570
URL: https://svnweb.freebsd.org/changeset/base/364570

Log:
  MFC r359306:
  Remove an optimization, which was incorrect a couple of times and
  therefore doesn't seem worth to be there.
  In this case COOKIE where not retransmitted anymore, when the
  socket was already closed.

Modified:
  stable/12/sys/netinet/sctputil.c
Directory Properties:
  stable/12/   (props changed)

Modified: stable/12/sys/netinet/sctputil.c
==============================================================================
--- stable/12/sys/netinet/sctputil.c	Sun Aug 23 22:17:29 2020	(r364569)
+++ stable/12/sys/netinet/sctputil.c	Sun Aug 23 22:19:39 2020	(r364570)
@@ -1655,28 +1655,10 @@ sctp_timeout_handler(void *t)
 	KASSERT(tmr->self == tmr, ("tmr->self corrupted"));
 	KASSERT(SCTP_IS_TIMER_TYPE_VALID(tmr->type), ("Invalid timer type %d", tmr->type));
 	type = tmr->type;
-	tmr->stopped_from = 0xa001;
 	if (inp) {
 		SCTP_INP_INCR_REF(inp);
-		if ((inp->sctp_socket == NULL) &&
-		    ((type != SCTP_TIMER_TYPE_INPKILL) &&
-		    (type != SCTP_TIMER_TYPE_INIT) &&
-		    (type != SCTP_TIMER_TYPE_SEND) &&
-		    (type != SCTP_TIMER_TYPE_RECV) &&
-		    (type != SCTP_TIMER_TYPE_HEARTBEAT) &&
-		    (type != SCTP_TIMER_TYPE_SHUTDOWN) &&
-		    (type != SCTP_TIMER_TYPE_SHUTDOWNACK) &&
-		    (type != SCTP_TIMER_TYPE_SHUTDOWNGUARD) &&
-		    (type != SCTP_TIMER_TYPE_ASOCKILL))) {
-			SCTP_INP_DECR_REF(inp);
-			SCTPDBG(SCTP_DEBUG_TIMER2,
-			    "Timer type %d handler exiting due to closed socket.\n",
-			    type);
-			CURVNET_RESTORE();
-			return;
-		}
 	}
-	tmr->stopped_from = 0xa002;
+	tmr->stopped_from = 0xa001;
 	if (stcb) {
 		atomic_add_int(&stcb->asoc.refcnt, 1);
 		if (stcb->asoc.state == 0) {
@@ -1691,7 +1673,7 @@ sctp_timeout_handler(void *t)
 			return;
 		}
 	}
-	tmr->stopped_from = 0xa003;
+	tmr->stopped_from = 0xa002;
 	SCTPDBG(SCTP_DEBUG_TIMER2, "Timer type %d goes off.\n", type);
 	if (!SCTP_OS_TIMER_ACTIVE(&tmr->timer)) {
 		if (inp) {
@@ -1706,8 +1688,8 @@ sctp_timeout_handler(void *t)
 		CURVNET_RESTORE();
 		return;
 	}
-	tmr->stopped_from = 0xa004;
 
+	tmr->stopped_from = 0xa003;
 	if (stcb) {
 		SCTP_TCB_LOCK(stcb);
 		atomic_add_int(&stcb->asoc.refcnt, -1);



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