Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 8 Mar 2009 11:20:54 +0000 (UTC)
From:      Robert Watson <rwatson@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
Subject:   svn commit: r189531 - in stable/7/sys: . contrib/pf dev/ath/ath_hal dev/cxgb net
Message-ID:  <200903081120.n28BKsjh082112@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: rwatson
Date: Sun Mar  8 11:20:54 2009
New Revision: 189531
URL: http://svn.freebsd.org/changeset/base/189531

Log:
  Merge missed routing lock fix r186061 from head to stable/7:
  
    Dont leak the rnh lock on error.
  
  Original change was from thompsa.  This may correct routing-related panics
  seen by uses of ppp, including the following PRs:
  
  PR:		132215, 132222, 132404
  Reported by:	Ethan <hsiao.ethan at gmail.com>

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/net/rtsock.c

Modified: stable/7/sys/net/rtsock.c
==============================================================================
--- stable/7/sys/net/rtsock.c	Sun Mar  8 11:12:23 2009	(r189530)
+++ stable/7/sys/net/rtsock.c	Sun Mar  8 11:20:54 2009	(r189531)
@@ -629,10 +629,10 @@ route_output(struct mbuf *m, struct sock
 				       rt->rt_ifa->ifa_addr))) {
 				RT_UNLOCK(rt);
 				RADIX_NODE_HEAD_LOCK(rnh);
-				if ((error = rt_getifa_fib(&info,
-				    rt->rt_fibnum)) != 0)
-					senderr(error);
+				error = rt_getifa_fib(&info, rt->rt_fibnum);
 				RADIX_NODE_HEAD_UNLOCK(rnh);
+				if (error != 0)
+					senderr(error);
 				RT_LOCK(rt);
 			}
 			if (info.rti_ifa != NULL &&



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