Re: Panic in netnatm

From: Craig Rodrigues <rodrigc_at_crodrigues.org>
Date: Wed, 27 Jul 2005 17:48:20 -0400
On Wed, Jul 27, 2005 at 10:35:34PM +0100, Robert Watson wrote:
> Otherwise, this looks good to me!  (And I guess neither Harti or Bruce got 
> a chance to test these code paths?)

Harti is on vacation until the end of August so I received no feedback from him.
I updated my patch based on your comments.  What do you think?


--- if_atm.c.orig	Tue Jul 26 10:28:42 2005
+++ if_atm.c	Wed Jul 27 17:44:45 2005
_at__at_ -221,6 +221,7 _at__at_
 		 * let native ATM know we are using this VCI/VPI
 		 * (i.e. reserve it)
 		 */
+		NATM_LOCK();
 		sin = (struct sockaddr_in *) rt_key(rt);
 		if (sin->sin_family != AF_INET)
 			goto failed;
_at__at_ -256,6 +257,7 _at__at_
 			rt->rt_llinfo = NULL;
 			rt->rt_flags &= ~RTF_LLINFO;
 		}
+		NATM_UNLOCK();
 #endif
 		/* mark as invalid. We cannot RTM_DELETE the route from
 		 * here, because the recursive call to rtrequest1 does
_at__at_ -269,10 +271,12 _at__at_
 		 * tell native ATM we are done with this VC
 		 */
 		if (rt->rt_flags & RTF_LLINFO) {
+			NATM_LOCK();
 			npcb_free((struct natmpcb *)rt->rt_llinfo,
 			    NPCB_DESTROY);
 			rt->rt_llinfo = NULL;
 			rt->rt_flags &= ~RTF_LLINFO;
+			NATM_UNLOCK();
 		}
 #endif
 		/*


-- 
Craig Rodrigues        
rodrigc_at_crodrigues.org
Received on Wed Jul 27 2005 - 19:48:26 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:39 UTC