svn commit: r185002 - in head/sys: amd64/linux32 compat/linux
i386/linux
Konstantin Belousov
kib at FreeBSD.org
Sun Nov 16 07:45:42 PST 2008
Author: kib
Date: Sun Nov 16 15:45:41 2008
New Revision: 185002
URL: http://svn.freebsd.org/changeset/base/185002
Log:
In the robust futexes list head, futex_offset shall be signed,
and glibc actually supplies negative offsets. Change l_ulong to l_long.
Submitted by: dchagin
Modified:
head/sys/amd64/linux32/linux.h
head/sys/compat/linux/linux_futex.c
head/sys/i386/linux/linux.h
Modified: head/sys/amd64/linux32/linux.h
==============================================================================
--- head/sys/amd64/linux32/linux.h Sun Nov 16 14:55:58 2008 (r185001)
+++ head/sys/amd64/linux32/linux.h Sun Nov 16 15:45:41 2008 (r185002)
@@ -892,7 +892,7 @@ struct linux_robust_list {
struct linux_robust_list_head {
struct linux_robust_list list;
- l_ulong futex_offset;
+ l_long futex_offset;
l_uintptr_t pending_list;
};
Modified: head/sys/compat/linux/linux_futex.c
==============================================================================
--- head/sys/compat/linux/linux_futex.c Sun Nov 16 14:55:58 2008 (r185001)
+++ head/sys/compat/linux/linux_futex.c Sun Nov 16 15:45:41 2008 (r185002)
@@ -652,7 +652,7 @@ release_futexes(struct proc *p)
struct linux_robust_list *entry, *next_entry, *pending;
unsigned int limit = 2048, pi, next_pi, pip;
struct linux_emuldata *em;
- l_ulong futex_offset;
+ l_long futex_offset;
int rc;
em = em_find(p, EMUL_DONTLOCK);
@@ -664,7 +664,7 @@ release_futexes(struct proc *p)
if (fetch_robust_entry(&entry, PTRIN(&head->list.next), &pi))
return;
- if (copyin(&head->futex_offset, &futex_offset, sizeof(l_ulong)))
+ if (copyin(&head->futex_offset, &futex_offset, sizeof(futex_offset)))
return;
if (fetch_robust_entry(&pending, PTRIN(&head->pending_list), &pip))
Modified: head/sys/i386/linux/linux.h
==============================================================================
--- head/sys/i386/linux/linux.h Sun Nov 16 14:55:58 2008 (r185001)
+++ head/sys/i386/linux/linux.h Sun Nov 16 15:45:41 2008 (r185002)
@@ -862,7 +862,7 @@ struct linux_robust_list {
struct linux_robust_list_head {
struct linux_robust_list list;
- l_ulong futex_offset;
+ l_long futex_offset;
struct linux_robust_list *pending_list;
};
More information about the svn-src-all
mailing list