Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 10 Dec 2008 07:45:11 +0000 (UTC)
From:      Kip Macy <kmacy@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r185841 - projects/arpv2_merge_1/sys/netinet
Message-ID:  <200812100745.mBA7jBDd022279@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kmacy
Date: Wed Dec 10 07:45:11 2008
New Revision: 185841
URL: http://svn.freebsd.org/changeset/base/185841

Log:
  we might be renewing the lookup without la_hold set

Modified:
  projects/arpv2_merge_1/sys/netinet/if_ether.c

Modified: projects/arpv2_merge_1/sys/netinet/if_ether.c
==============================================================================
--- projects/arpv2_merge_1/sys/netinet/if_ether.c	Wed Dec 10 07:14:51 2008	(r185840)
+++ projects/arpv2_merge_1/sys/netinet/if_ether.c	Wed Dec 10 07:45:11 2008	(r185841)
@@ -325,17 +325,18 @@ retry:
 	}
 
 	renew = (la->la_asked == 0 || la->la_expire != time_uptime);
+
+	if (renew && ((flags & LLE_EXCLUSIVE) == 0)) {
+		flags |= LLE_EXCLUSIVE;
+		LLE_RUNLOCK(la);
+		goto retry;
+	}
 	/*
 	 * There is an arptab entry, but no ethernet address
 	 * response yet.  Replace the held mbuf with this
 	 * latest one.
 	 */
 	if (m) {
-		if ((flags & LLE_EXCLUSIVE) == 0) {
-			flags |= LLE_EXCLUSIVE;
-			LLE_RUNLOCK(la);
-			goto retry;
-		}
 		if (la->la_hold)
 			m_freem(la->la_hold);
 		la->la_hold = m;



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