Date: Mon, 23 Feb 2009 23:01:15 +0000 (GMT) From: Robert Watson <rwatson@FreeBSD.org> To: dikshie <dikshie@gmail.com> Cc: freebsd-net@freebsd.org Subject: Re: panic: _rw_wlock_hard Message-ID: <alpine.BSF.2.00.0902232300270.92010@fledge.watson.org> In-Reply-To: <alpine.BSF.2.00.0902211408260.98609@fledge.watson.org> References: <910e60e80902180150n41a592ffyb62ea53beb24f1ef@mail.gmail.com> <alpine.BSF.2.00.0902211408260.98609@fledge.watson.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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"
>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?alpine.BSF.2.00.0902232300270.92010>
