Skip site navigation (1)Skip section navigation (2)
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>