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-unsubscr...@freebsd.org"

_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"

Reply via email to