Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 3 Jun 2010 15:09:21 +0200
From:      =?ISO-8859-1?Q?Ermal_Lu=E7i?= <eri@freebsd.org>
To:        Robert Watson <rwatson@freebsd.org>
Cc:        svn-src-stable@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, svn-src-stable-8@freebsd.org
Subject:   Re: svn commit: r208766 - stable/8/sys/netinet
Message-ID:  <AANLkTimEyii8eF05vgQRuSh5eQVwBceIcxwgFeUSu80b@mail.gmail.com>
In-Reply-To: <201006030855.o538tjke024438@svn.freebsd.org>
References:  <201006030855.o538tjke024438@svn.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Jun 3, 2010 at 10:55 AM, Robert Watson <rwatson@freebsd.org> wrote:
> Author: rwatson
> Date: Thu Jun =A03 08:55:45 2010
> New Revision: 208766
> URL: http://svn.freebsd.org/changeset/base/208766
>
> Log:
> =A0Merge r204810 from head to stable/8:
>
> =A0 =A0Remove unnecessary locking of divcbinfo lock from div_output(): th=
is has
> =A0 =A0not been required since FreeBSD 7.0 when the so_pcb pointer leadin=
g to inp
> =A0 =A0was guaranteed to be stable when a valid socket reference is held =
(as it
> =A0 =A0is in the output path).
>
> =A0 =A0Reviewed by: =A0 =A0 =A0 =A0bz
> =A0 =A0Sponsored by: =A0 =A0 =A0 Juniper Networks
>
> =A0Approved by: =A0re (kib)
>
> Modified:
> =A0stable/8/sys/netinet/ip_divert.c
> Directory Properties:
> =A0stable/8/sys/ =A0 (props changed)
> =A0stable/8/sys/amd64/include/xen/ =A0 (props changed)
> =A0stable/8/sys/cddl/contrib/opensolaris/ =A0 (props changed)
> =A0stable/8/sys/contrib/dev/acpica/ =A0 (props changed)
> =A0stable/8/sys/contrib/pf/ =A0 (props changed)
> =A0stable/8/sys/dev/xen/xenpci/ =A0 (props changed)
> =A0stable/8/sys/geom/sched/ =A0 (props changed)
>
> Modified: stable/8/sys/netinet/ip_divert.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
> --- stable/8/sys/netinet/ip_divert.c =A0 =A0Thu Jun =A03 03:55:22 2010 =
=A0 =A0 =A0 =A0(r208765)
> +++ stable/8/sys/netinet/ip_divert.c =A0 =A0Thu Jun =A03 08:55:45 2010 =
=A0 =A0 =A0 =A0(r208766)
> @@ -392,7 +392,6 @@ div_output(struct socket *so, struct mbu
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0struct inpcb *inp;
>
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0dt->info |=3D IPFW_IS_DIVERT | IPFW_INFO_O=
UT;
> - =A0 =A0 =A0 =A0 =A0 =A0 =A0 INP_INFO_WLOCK(&V_divcbinfo);
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0inp =3D sotoinpcb(so);
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0INP_RLOCK(inp);
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0/*
> @@ -403,7 +402,6 @@ div_output(struct socket *so, struct mbu
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 ((u_short)ntohs(ip->ip_len) > m->=
m_pkthdr.len)) {
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0error =3D EINVAL;
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0INP_RUNLOCK(inp);
> - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 INP_INFO_WUNLOCK(&V_divcbin=
fo);
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0m_freem(m);
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0} else {
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0/* Convert fields to host =
order for ip_output() */
> @@ -444,7 +442,6 @@ div_output(struct socket *so, struct mbu
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =
=A0 =A0error =3D ENOBUFS;
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0}
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0INP_RUNLOCK(inp);
> - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 INP_INFO_WUNLOCK(&V_divcbin=
fo);
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0if (error =3D=3D ENOBUFS) =
{
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0m_freem(m)=
;
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0return (er=
ror);
>

Would it make sense to remove even passing the interface name up and
actually send the
interface index?

That is what we are doing at pfSense and it works quite ok.

--=20
Ermal



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTimEyii8eF05vgQRuSh5eQVwBceIcxwgFeUSu80b>