Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 22 Aug 2016 03:48:39 +0000 (UTC)
From:      Mark Johnston <markj@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r304585 - in user/alc/PQ_LAUNDRY/sys: dev/alc netinet
Message-ID:  <201608220348.u7M3mdvB025206@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: markj
Date: Mon Aug 22 03:48:39 2016
New Revision: 304585
URL: https://svnweb.freebsd.org/changeset/base/304585

Log:
  MFH r304584

Modified:
  user/alc/PQ_LAUNDRY/sys/dev/alc/if_alcvar.h
  user/alc/PQ_LAUNDRY/sys/netinet/sctp_output.c
Directory Properties:
  user/alc/PQ_LAUNDRY/   (props changed)

Modified: user/alc/PQ_LAUNDRY/sys/dev/alc/if_alcvar.h
==============================================================================
--- user/alc/PQ_LAUNDRY/sys/dev/alc/if_alcvar.h	Mon Aug 22 03:28:06 2016	(r304584)
+++ user/alc/PQ_LAUNDRY/sys/dev/alc/if_alcvar.h	Mon Aug 22 03:48:39 2016	(r304585)
@@ -235,7 +235,8 @@ struct alc_softc {
 #define	ALC_FLAG_APS		0x1000
 #define	ALC_FLAG_AR816X_FAMILY	0x2000
 #define	ALC_FLAG_LINK_WAR	0x4000
-#define	ALC_FLAG_LINK		0x8000
+#define	ALC_FLAG_E2X00		0x8000
+#define	ALC_FLAG_LINK		0x10000
 
 	struct callout		alc_tick_ch;
 	struct alc_hw_stats	alc_stats;

Modified: user/alc/PQ_LAUNDRY/sys/netinet/sctp_output.c
==============================================================================
--- user/alc/PQ_LAUNDRY/sys/netinet/sctp_output.c	Mon Aug 22 03:28:06 2016	(r304584)
+++ user/alc/PQ_LAUNDRY/sys/netinet/sctp_output.c	Mon Aug 22 03:48:39 2016	(r304585)
@@ -12639,7 +12639,10 @@ sctp_lower_sosend(struct socket *so,
 		}
 		SCTP_INP_RUNLOCK(inp);
 	} else if (sinfo_assoc_id) {
-		stcb = sctp_findassociation_ep_asocid(inp, sinfo_assoc_id, 0);
+		stcb = sctp_findassociation_ep_asocid(inp, sinfo_assoc_id, 1);
+		if (stcb != NULL) {
+			hold_tcblock = 1;
+		}
 	} else if (addr) {
 		/*-
 		 * Since we did not use findep we must
@@ -13404,6 +13407,10 @@ skip_preblock:
 			}
 		}
 		SCTP_TCB_SEND_LOCK(stcb);
+		if (stcb->asoc.state & SCTP_STATE_ABOUT_TO_BE_FREED) {
+			SCTP_TCB_SEND_UNLOCK(stcb);
+			goto out_unlocked;
+		}
 		if (sp) {
 			if (sp->msg_is_complete == 0) {
 				strm->last_msg_incomplete = 1;



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