Date: Mon, 26 Dec 2016 11:20:19 -0200 From: Renato Botelho <garga@FreeBSD.org> To: "Alexander V. Chernikov" <melifaro@freebsd.org> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org, "Andrey V. Elsukov" <ae@freebsd.org> Subject: Re: svn commit: r293829 - head/sys/net Message-ID: <31D36CA7-4D63-43F6-8845-57F6B68E1925@FreeBSD.org> In-Reply-To: <201601131432.u0DEWn2H088657@repo.freebsd.org> References: <201601131432.u0DEWn2H088657@repo.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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=3D215122 > On 13 Jan 2016, at 12:32, Alexander V. Chernikov = <melifaro@freebsd.org> wrote: >=20 > Author: melifaro > Date: Wed Jan 13 14:32:48 2016 > New Revision: 293829 > URL: https://svnweb.freebsd.org/changeset/base/293829 >=20 > Log: > Remove RTF_RNH_LOCKED support from rtalloc1_fib(). >=20 > Last caller using it was eliminated in r293471. >=20 > Sponsored by: Yandex LLC >=20 > Modified: > head/sys/net/route.c > head/sys/net/route.h >=20 > Modified: head/sys/net/route.c > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- 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 =3D 0, msgtype =3D RTM_MISS; > - int needlock; >=20 > KASSERT((fibnum < rt_numfibs), ("rtalloc1_fib: bad fibnum")); > rnh =3D 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 =3D !(ignflags & RTF_RNH_LOCKED); > - if (needlock) > - RADIX_NODE_HEAD_RLOCK(rnh); > -#ifdef INVARIANTS=09 > - else > - RADIX_NODE_HEAD_LOCK_ASSERT(rnh); > -#endif > + RADIX_NODE_HEAD_RLOCK(rnh); > rn =3D rnh->rnh_matchaddr(dst, rnh); > if (rn && ((rn->rn_flags & RNF_ROOT) =3D=3D 0)) { > newrt =3D RNTORT(rn); > RT_LOCK(newrt); > RT_ADDREF(newrt); > - if (needlock) > - RADIX_NODE_HEAD_RUNLOCK(rnh); > - goto done; > + RADIX_NODE_HEAD_RUNLOCK(rnh); > + return (newrt); >=20 > - } else if (needlock) > + } else > RADIX_NODE_HEAD_RUNLOCK(rnh); > =09 > /* > @@ -456,10 +448,7 @@ miss: > bzero(&info, sizeof(info)); > info.rti_info[RTAX_DST] =3D dst; > rt_missmsg_fib(msgtype, &info, 0, err, fibnum); > - }=09 > -done: > - if (newrt) > - RT_LOCK_ASSERT(newrt); > + } > return (newrt); > } >=20 >=20 > Modified: head/sys/net/route.h > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- 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 = */ >=20 > -#define RTF_RNH_LOCKED 0x40000000 /* radix node head is = locked */ > +#define RTF_RNH_LOCKED 0x40000000 /* unused */ >=20 > #define RTF_GWFLAG_COMPAT 0x80000000 /* a compatibility bit = for interacting > with existing routing apps */ > _______________________________________________ > svn-src-head@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/svn-src-head > To unsubscribe, send any mail to = "svn-src-head-unsubscribe@freebsd.org" -- Renato Botelho
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?31D36CA7-4D63-43F6-8845-57F6B68E1925>