From owner-freebsd-current@FreeBSD.ORG Sat Dec 13 20:14:41 2008 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 96E47106567A for ; Sat, 13 Dec 2008 20:14:41 +0000 (UTC) (envelope-from mat.macy@gmail.com) Received: from rv-out-0708.google.com (rv-out-0708.google.com [209.85.198.241]) by mx1.freebsd.org (Postfix) with ESMTP id 65F588FC08 for ; Sat, 13 Dec 2008 20:14:41 +0000 (UTC) (envelope-from mat.macy@gmail.com) Received: by rv-out-0708.google.com with SMTP id k29so2515043rvb.0 for ; Sat, 13 Dec 2008 12:14:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:sender :to:subject:cc:in-reply-to:mime-version:content-type :content-transfer-encoding:content-disposition:references :x-google-sender-auth; bh=xPIzmigZybDcOT7ZjVBtHkHPoW7DCz9p2gTLESSmk+A=; b=lO/vXz2Ae1S+6WN/9u1ELVVOPv+prjfd8jBu3OU7AxdNyBRb/C3y9oaV3udETQPJb4 V+rRKqlXBUJiYFydnOgg7rdu3ouPvfxcBxVFDgv2UeGtKBBRulDDIFKViHQ4Y4l4admh rbE7GmNakZUZQZW6UHrKNYgiCPT5xWZFPcYvA= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:sender:to:subject:cc:in-reply-to:mime-version :content-type:content-transfer-encoding:content-disposition :references:x-google-sender-auth; b=xqf1jiCf2lUBzVX9ed/iGNxlqQMzCl8w+Vo7epgSiYNKoPFcIeItEUGGxPuLh2i3Xf hD0IQZKDjIGjObzOoRH5ydh70xYRc39fEHOBak/U85HDuM3m923Q5WSxhBOTGSl6oUuG mITAsJJH0kxDE6lT7YEIvhkZ5S7CmvqGkVDa0= Received: by 10.140.201.8 with SMTP id y8mr2702548rvf.101.1229199281106; Sat, 13 Dec 2008 12:14:41 -0800 (PST) Received: by 10.141.142.3 with HTTP; Sat, 13 Dec 2008 12:14:41 -0800 (PST) Message-ID: <3c1674c90812131214r354a11d7i35d354694026cb78@mail.gmail.com> Date: Sat, 13 Dec 2008 20:14:41 +0000 From: "Kip Macy" Sender: mat.macy@gmail.com To: "Tor Egge" In-Reply-To: <20081213.200612.74714794.Tor.Egge@cvsup.no.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <088C87B70CB486D2F808091A@10.255.253.2> <20081213.200612.74714794.Tor.Egge@cvsup.no.freebsd.org> X-Google-Sender-Auth: 34a4223234b49ce8 Cc: glz@hidden-powers.com, freebsd-current@freebsd.org Subject: Re: [PANIC] _rw_rlock (radix node head): wlock already held @ /usr/src/sys/net/route.c:291 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Dec 2008 20:14:41 -0000 Heh, that is the correct fix that I was about to commit. Thanks, Kip On Sat, Dec 13, 2008 at 8:06 PM, Tor Egge wrote: >> I upgraded to CURRENT Dec 12 11pm and get this panic when ifconfig tries to >> add an ipv6 route. > > I've gotten similar panics and am currently using the enclosed patch. > > - Tor Egge > > Index: sys/netinet/in_rmx.c > =================================================================== > RCS file: /home/ncvs/src/sys/netinet/in_rmx.c,v > retrieving revision 1.65 > diff -u -r1.65 in_rmx.c > --- sys/netinet/in_rmx.c 2 Dec 2008 21:37:28 -0000 1.65 > +++ sys/netinet/in_rmx.c 13 Dec 2008 15:43:33 -0000 > @@ -115,7 +115,7 @@ > * ARP entry and delete it if so. > */ > rt2 = in_rtalloc1((struct sockaddr *)sin, 0, > - RTF_CLONING, rt->rt_fibnum); > + RTF_CLONING | RTF_RNH_LOCKED, rt->rt_fibnum); > if (rt2) { > if (rt2->rt_flags & RTF_LLINFO && > rt2->rt_flags & RTF_HOST && > Index: sys/netinet6/in6_rmx.c > =================================================================== > RCS file: /home/ncvs/src/sys/netinet6/in6_rmx.c,v > retrieving revision 1.31 > diff -u -r1.31 in6_rmx.c > --- sys/netinet6/in6_rmx.c 8 Dec 2008 00:28:21 -0000 1.31 > +++ sys/netinet6/in6_rmx.c 13 Dec 2008 19:51:18 -0000 > @@ -160,7 +160,8 @@ > * Find out if it is because of an > * ARP entry and delete it if so. > */ > - rt2 = rtalloc1((struct sockaddr *)sin6, 0, RTF_CLONING); > + rt2 = rtalloc1((struct sockaddr *)sin6, 0, > + RTF_CLONING | RTF_RNH_LOCKED); > if (rt2) { > if (rt2->rt_flags & RTF_LLINFO && > rt2->rt_flags & RTF_HOST && > @@ -187,7 +188,8 @@ > * net route entry, 3ffe:0501:: -> if0. > * This case should not raise an error. > */ > - rt2 = rtalloc1((struct sockaddr *)sin6, 0, RTF_CLONING); > + rt2 = rtalloc1((struct sockaddr *)sin6, 0, > + RTF_CLONING | RTF_RNH_LOCKED); > if (rt2) { > if ((rt2->rt_flags & (RTF_CLONING|RTF_HOST|RTF_GATEWAY)) > == RTF_CLONING > > -- If we desire respect for the law, we must first make the law respectable. - Louis D. Brandeis