From owner-freebsd-net@FreeBSD.ORG Mon Feb 23 23:01:15 2009 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E485F106566C for ; Mon, 23 Feb 2009 23:01:15 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from cyrus.watson.org (cyrus.watson.org [65.122.17.42]) by mx1.freebsd.org (Postfix) with ESMTP id C02938FC19 for ; Mon, 23 Feb 2009 23:01:15 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from fledge.watson.org (fledge.watson.org [65.122.17.41]) by cyrus.watson.org (Postfix) with ESMTPS id 500CE46B0C; Mon, 23 Feb 2009 18:01:15 -0500 (EST) Date: Mon, 23 Feb 2009 23:01:15 +0000 (GMT) From: Robert Watson X-X-Sender: robert@fledge.watson.org To: dikshie In-Reply-To: Message-ID: References: <910e60e80902180150n41a592ffyb62ea53beb24f1ef@mail.gmail.com> User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: freebsd-net@freebsd.org Subject: Re: panic: _rw_wlock_hard X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Feb 2009 23:01:16 -0000 On Sat, 21 Feb 2009, Robert Watson wrote: > Something like the following may help -- build-tested but not not run-time > tested: I've now committed this patch to head as r188962 -- thanks for the report! Robert N M Watson Computer Laboratory University of Cambridge > > Index: in_rmx.c > =================================================================== > --- in_rmx.c (revision 186118) > +++ in_rmx.c (working copy) > @@ -230,6 +230,8 @@ > struct rtentry *rt = (struct rtentry *)rn; > int err; > > + RADIX_NODE_HEAD_WLOCK_ASSERT(ap->rnh); > + > if (rt->rt_flags & RTPRF_OURS) { > ap->found++; > > @@ -240,7 +242,8 @@ > err = in_rtrequest(RTM_DELETE, > (struct sockaddr *)rt_key(rt), > rt->rt_gateway, rt_mask(rt), > - rt->rt_flags, 0, rt->rt_fibnum); > + rt->rt_flags | RTF_RNH_LOCKED, 0, > + rt->rt_fibnum); > if (err) { > log(LOG_WARNING, "in_rtqkill: error %d\n", > err); > } else { > _______________________________________________ > freebsd-net@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-net > To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org" >