Alexander, Looks like this change introduced a bug. It was reported at pfSense and a ticket was opened at bugzilla:
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=215122 > On 13 Jan 2016, at 12:32, Alexander V. Chernikov <melif...@freebsd.org> wrote: > > Author: melifaro > Date: Wed Jan 13 14:32:48 2016 > New Revision: 293829 > URL: https://svnweb.freebsd.org/changeset/base/293829 > > Log: > Remove RTF_RNH_LOCKED support from rtalloc1_fib(). > > Last caller using it was eliminated in r293471. > > Sponsored by: Yandex LLC > > Modified: > head/sys/net/route.c > head/sys/net/route.h > > Modified: head/sys/net/route.c > ============================================================================== > --- head/sys/net/route.c Wed Jan 13 14:28:12 2016 (r293828) > +++ head/sys/net/route.c Wed Jan 13 14:32:48 2016 (r293829) > @@ -409,7 +409,6 @@ rtalloc1_fib(struct sockaddr *dst, int r > struct rtentry *newrt; > struct rt_addrinfo info; > int err = 0, msgtype = RTM_MISS; > - int needlock; > > KASSERT((fibnum < rt_numfibs), ("rtalloc1_fib: bad fibnum")); > rnh = rt_tables_get_rnh(fibnum, dst->sa_family); > @@ -420,23 +419,16 @@ rtalloc1_fib(struct sockaddr *dst, int r > /* > * Look up the address in the table for that Address Family > */ > - needlock = !(ignflags & RTF_RNH_LOCKED); > - if (needlock) > - RADIX_NODE_HEAD_RLOCK(rnh); > -#ifdef INVARIANTS > - else > - RADIX_NODE_HEAD_LOCK_ASSERT(rnh); > -#endif > + RADIX_NODE_HEAD_RLOCK(rnh); > rn = rnh->rnh_matchaddr(dst, rnh); > if (rn && ((rn->rn_flags & RNF_ROOT) == 0)) { > newrt = RNTORT(rn); > RT_LOCK(newrt); > RT_ADDREF(newrt); > - if (needlock) > - RADIX_NODE_HEAD_RUNLOCK(rnh); > - goto done; > + RADIX_NODE_HEAD_RUNLOCK(rnh); > + return (newrt); > > - } else if (needlock) > + } else > RADIX_NODE_HEAD_RUNLOCK(rnh); > > /* > @@ -456,10 +448,7 @@ miss: > bzero(&info, sizeof(info)); > info.rti_info[RTAX_DST] = dst; > rt_missmsg_fib(msgtype, &info, 0, err, fibnum); > - } > -done: > - if (newrt) > - RT_LOCK_ASSERT(newrt); > + } > return (newrt); > } > > > Modified: head/sys/net/route.h > ============================================================================== > --- head/sys/net/route.h Wed Jan 13 14:28:12 2016 (r293828) > +++ head/sys/net/route.h Wed Jan 13 14:32:48 2016 (r293829) > @@ -175,7 +175,7 @@ struct rtentry { > /* 0x8000000 and up unassigned */ > #define RTF_STICKY 0x10000000 /* always route dst->src */ > > -#define RTF_RNH_LOCKED 0x40000000 /* radix node head is locked */ > +#define RTF_RNH_LOCKED 0x40000000 /* unused */ > > #define RTF_GWFLAG_COMPAT 0x80000000 /* a compatibility bit for > interacting > with existing routing apps */ > _______________________________________________ > svn-src-h...@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/svn-src-head > To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org" -- Renato Botelho _______________________________________________ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"