Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 23 Aug 2020 22:13:58 +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: r364567 - stable/12/sys/netinet
Message-ID:  <202008232213.07NMDwMS092019@repo.freebsd.org>

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

Log:
  MFC r359300:
  Don't restore the vnet too early in error cases.

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:12:55 2020	(r364566)
+++ stable/12/sys/netinet/sctputil.c	Sun Aug 23 22:13:57 2020	(r364567)
@@ -1669,10 +1669,10 @@ sctp_timeout_handler(void *t)
 		    (type != SCTP_TIMER_TYPE_SHUTDOWNGUARD) &&
 		    (type != SCTP_TIMER_TYPE_ASOCKILL))) {
 			SCTP_INP_DECR_REF(inp);
-			CURVNET_RESTORE();
 			SCTPDBG(SCTP_DEBUG_TIMER2,
 			    "Timer type = %d handler exiting due to closed socket\n",
 			    type);
+			CURVNET_RESTORE();
 			return;
 		}
 	}
@@ -1684,10 +1684,10 @@ sctp_timeout_handler(void *t)
 			if (inp) {
 				SCTP_INP_DECR_REF(inp);
 			}
-			CURVNET_RESTORE();
 			SCTPDBG(SCTP_DEBUG_TIMER2,
 			    "Timer type = %d handler exiting due to CLOSED association\n",
 			    type);
+			CURVNET_RESTORE();
 			return;
 		}
 	}
@@ -1700,10 +1700,10 @@ sctp_timeout_handler(void *t)
 		if (stcb) {
 			atomic_add_int(&stcb->asoc.refcnt, -1);
 		}
-		CURVNET_RESTORE();
 		SCTPDBG(SCTP_DEBUG_TIMER2,
 		    "Timer type = %d handler exiting due to not being active\n",
 		    type);
+		CURVNET_RESTORE();
 		return;
 	}
 	tmr->stopped_from = 0xa004;
@@ -1718,10 +1718,10 @@ sctp_timeout_handler(void *t)
 			if (inp) {
 				SCTP_INP_DECR_REF(inp);
 			}
-			CURVNET_RESTORE();
 			SCTPDBG(SCTP_DEBUG_TIMER2,
 			    "Timer type = %d handler exiting due to CLOSED association\n",
 			    type);
+			CURVNET_RESTORE();
 			return;
 		}
 	} else if (inp != NULL) {



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