Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 25 Jul 2017 14:41:50 +0000 (UTC)
From:      Sean Bruno <sbruno@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r321477 - head/sys/net
Message-ID:  <201707251441.v6PEfocM030334@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: sbruno
Date: Tue Jul 25 14:41:50 2017
New Revision: 321477
URL: https://svnweb.freebsd.org/changeset/base/321477

Log:
  Don't hold the RM lock during lagg_proto_addport() to avoid an LOR.
  
  Submitted by:	Kevin Bowling <kevin.bowling@kev009.com>
  Reviewed by:	mav
  MFC after:	1 week
  Sponsored by:	Limelight Networks
  Differential Revision:	https://reviews.freebsd.org/D11711

Modified:
  head/sys/net/if_lagg.c

Modified: head/sys/net/if_lagg.c
==============================================================================
--- head/sys/net/if_lagg.c	Tue Jul 25 14:38:30 2017	(r321476)
+++ head/sys/net/if_lagg.c	Tue Jul 25 14:41:50 2017	(r321477)
@@ -738,14 +738,15 @@ lagg_port_create(struct lagg_softc *sc, struct ifnet *
 
 	lagg_setmulti(lp);
 
+	LAGG_WUNLOCK(sc);
+
 	if ((error = lagg_proto_addport(sc, lp)) != 0) {
 		/* Remove the port, without calling pr_delport. */
+		LAGG_WLOCK(sc);
 		lagg_port_destroy(lp, 0);
 		LAGG_UNLOCK_ASSERT(sc);
 		return (error);
 	}
-
-	LAGG_WUNLOCK(sc);
 
 	/* Update lagg capabilities */
 	lagg_capabilities(sc);



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