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>