cvs commit: src/sys/compat/linux linux_misc.c
Roman Divacky
rdivacky at FreeBSD.org
Sat Oct 4 21:23:04 UTC 2008
On Sat, Oct 04, 2008 at 07:23:30PM +0000, Konstantin Belousov wrote:
> kib 2008-10-04 19:23:30 UTC
>
> FreeBSD src repository
>
> Modified files:
> sys/compat/linux linux_misc.c
> Log:
> SVN rev 183612 on 2008-10-04 19:23:30Z by kib
>
> Current linux_fooaffinity() emulation fails, as the FreeBSD affinity
> syscalls expect the bitmap size in the range from 32 to 128. Old glibc
> always assumed size 1024, while newer glibc searches for approriate
> size, starting from 1024 and going up.
>
> For now, use FreeBSD size of cpuset_t for bitmap size parameter and
> return EINVAL if length of user space bitmap less than our size of
> cpuset_t.
>
> Submitted by: dchagin
> MFC after: 1 week
> [This requires MFC of the actual linux affinity syscalls]
I think this patch (actually, the reverse of this) is what should be
MFCed:
--- /tmp/linux_misc.c 2008-10-01 14:43:31.000000000 +0200
+++ linux_misc.c 2008-10-01 14:41:57.000000000 +0200
@@ -1739,13 +1739,13 @@
int error;
cpumask_t i = ~0;
- if (args->len < sizeof(cpuset_t))
+ if (args->len < sizeof(cpumask_t))
return (EINVAL);
- error = copyout(&i, args->user_mask_ptr, sizeof(cpuset_t));
+ error = copyout(&i, args->user_mask_ptr, sizeof(cpumask_t));
if (error)
return (EFAULT);
- td->td_retval[0] = sizeof(cpuset_t);
+ td->td_retval[0] = sizeof(cpumask_t);
return (0);
}
this is a minimal change I believe, Juergen Lock tested this.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/cvs-src/attachments/20081004/d0cab9ed/attachment.pgp
More information about the cvs-src
mailing list