Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 3 May 2009 20:36:07 +0400
From:      Chagin Dmitry <dchagin@freebsd.org>
To:        Robert Watson <rwatson@freebsd.org>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r191742 - head/sys/compat/linux
Message-ID:  <20090503163607.GA30330@dchagin.static.corbina.ru>
In-Reply-To: <alpine.BSF.2.00.0905030442320.41143@fledge.watson.org>
References:  <200905021051.n42ApetI083033@svn.freebsd.org> <alpine.BSF.2.00.0905030442320.41143@fledge.watson.org>

next in thread | previous in thread | raw e-mail | index | archive | help

--C7zPtVaVf+AK4Oqc
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Sun, May 03, 2009 at 04:57:03AM +0100, Robert Watson wrote:
>=20
> On Sat, 2 May 2009, Dmitry Chagin wrote:
>=20
> >  Linux socketpair() call expects explicit specified protocol for
> >  AF_LOCAL domain unlike FreeBSD which expects 0 in this case.
> ...
> > @@ -859,7 +859,10 @@ linux_socketpair(struct thread *td, stru
> > 		return (EINVAL);
> >
> > 	bsd_args.type =3D args->type;
> > -	bsd_args.protocol =3D args->protocol;
> > +	if (bsd_args.domain =3D=3D AF_LOCAL && args->protocol =3D=3D PF_UNIX)
> > +		bsd_args.protocol =3D 0;
> > +	else
> > +		bsd_args.protocol =3D args->protocol;
> > 	bsd_args.rsv =3D (int *)PTRIN(args->rsv);
> > 	return (socketpair(td, &bsd_args));
> > }
>=20
> I think I'd tweak this to be more like:
>=20
>  	if (bsd_args.domain =3D=3D PF_LOCAL) {
>  		if (bsd_args.protocol =3D=3D PF_UNIX)
>  			bsd_args.protocl =3D 0;
>  		else if (bsd_args.protocol !=3D 0)
>  			return (EPROTONOSUPPORT);
>  	}
>=20
> Because (a) the domain argument takes a protocol family in FreeBSD and yo=
u're=20
> passing arguments into the BSD ABI without a mapping for that field, and =
(b)=20

domain argument is mapped,
I used value AF_LOCAL which is similar to the value
of localdomain .dom_family member. It misleads :)

> for the protocol family the use of PF_UNIX is weird but must be supported=
, so=20
> I'd consider it to be an entirely mapped namespace and avoid passing thro=
ugh=20
> values that aren't 0 to the BSD layer as it's not clear what that would m=
ean.
>=20

agree. I send a new patch to the mentor. Thank you!

--=20
Have fun!
chd

--C7zPtVaVf+AK4Oqc
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.10 (FreeBSD)

iEYEARECAAYFAkn9x/cACgkQ0t2Tb3OO/O0d2ACgvGszDvbZhoVUCMQsTw+Umcdv
3l8AoL5kU8Njsjy3o+sDzXNrLO3YOHvh
=Ty+m
-----END PGP SIGNATURE-----

--C7zPtVaVf+AK4Oqc--



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