Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 17 Dec 2008 21:04:43 +0000 (UTC)
From:      Andrew Thompson <thompsa@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r186255 - head/sys/net
Message-ID:  <200812172104.mBHL4hDb015297@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: thompsa
Date: Wed Dec 17 21:04:43 2008
New Revision: 186255
URL: http://svn.freebsd.org/changeset/base/186255

Log:
  - Protect against sc->sc_primary being null
  - Initialise speed where its used

Modified:
  head/sys/net/if_lagg.c

Modified: head/sys/net/if_lagg.c
==============================================================================
--- head/sys/net/if_lagg.c	Wed Dec 17 20:58:10 2008	(r186254)
+++ head/sys/net/if_lagg.c	Wed Dec 17 21:04:43 2008	(r186255)
@@ -1211,7 +1211,7 @@ lagg_linkstate(struct lagg_softc *sc)
 {
 	struct lagg_port *lp;
 	int new_link = LINK_STATE_DOWN;
-	uint64_t speed = 0;
+	uint64_t speed;
 
 	/* Our link is considered up if at least one of our ports is active */
 	SLIST_FOREACH(lp, &sc->sc_ports, lp_entries) {
@@ -1225,12 +1225,13 @@ lagg_linkstate(struct lagg_softc *sc)
 	/* Update if_baudrate to reflect the max possible speed */
 	switch (sc->sc_proto) {
 		case LAGG_PROTO_FAILOVER:
-			sc->sc_ifp->if_baudrate =
-			    sc->sc_primary->lp_ifp->if_baudrate;
+			sc->sc_ifp->if_baudrate = sc->sc_primary != NULL ?
+			    sc->sc_primary->lp_ifp->if_baudrate : 0;
 			break;
 		case LAGG_PROTO_ROUNDROBIN:
 		case LAGG_PROTO_LOADBALANCE:
 		case LAGG_PROTO_ETHERCHANNEL:
+			speed = 0;
 			SLIST_FOREACH(lp, &sc->sc_ports, lp_entries)
 				speed += lp->lp_ifp->if_baudrate;
 			sc->sc_ifp->if_baudrate = speed;



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