Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 24 Dec 2008 05:31:26 +0000 (UTC)
From:      Kip Macy <kmacy@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r186474 - head/sys/netinet
Message-ID:  <200812240531.mBO5VQ8S024444@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kmacy
Date: Wed Dec 24 05:31:26 2008
New Revision: 186474
URL: http://svn.freebsd.org/changeset/base/186474

Log:
  Fix missed unlock and reference drop of lle
  
  Found by: pho

Modified:
  head/sys/netinet/if_ether.c

Modified: head/sys/netinet/if_ether.c
==============================================================================
--- head/sys/netinet/if_ether.c	Wed Dec 24 04:44:39 2008	(r186473)
+++ head/sys/netinet/if_ether.c	Wed Dec 24 05:31:26 2008	(r186474)
@@ -156,12 +156,12 @@ arptimer(void *arg)
 	ifp = lle->lle_tbl->llt_ifp;
 	IF_AFDATA_LOCK(ifp);
 	LLE_WLOCK(lle);
-	if ((lle->la_flags & LLE_DELETED) ||
-	    (time_second >= lle->la_expire)) {
-		if (!callout_pending(&lle->la_timer) &&
-		    callout_active(&lle->la_timer))
-			(void) llentry_free(lle);
-	} else {
+	if (((lle->la_flags & LLE_DELETED)
+		|| (time_second >= lle->la_expire))
+	    && (!callout_pending(&lle->la_timer) &&
+		callout_active(&lle->la_timer)))
+		(void) llentry_free(lle);
+	else {
 		/*
 		 * Still valid, just drop our reference
 		 */



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