aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2008-11-16 15:45:41 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2008-11-16 15:45:41 +0000
commit62162dfc948bf1425ebf1b6b6df1d52cd8656f83 (patch)
tree2b67d2722e9a117876eddf97f798a65247e3b9b5 /sys
parentd47e6e6bd1828468161b7dbb648696eb480d7c87 (diff)
downloadsrc-62162dfc948bf1425ebf1b6b6df1d52cd8656f83.tar.gz
src-62162dfc948bf1425ebf1b6b6df1d52cd8656f83.zip
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
Notes
Notes: svn path=/head/; revision=185002
Diffstat (limited to 'sys')
-rw-r--r--sys/amd64/linux32/linux.h2
-rw-r--r--sys/compat/linux/linux_futex.c4
-rw-r--r--sys/i386/linux/linux.h2
3 files changed, 4 insertions, 4 deletions
diff --git a/sys/amd64/linux32/linux.h b/sys/amd64/linux32/linux.h
index 2354864f22a0..60598a0019b9 100644
--- a/sys/amd64/linux32/linux.h
+++ b/sys/amd64/linux32/linux.h
@@ -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;
};
diff --git a/sys/compat/linux/linux_futex.c b/sys/compat/linux/linux_futex.c
index c2792761c8e3..b19d2906dabe 100644
--- a/sys/compat/linux/linux_futex.c
+++ b/sys/compat/linux/linux_futex.c
@@ -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))
diff --git a/sys/i386/linux/linux.h b/sys/i386/linux/linux.h
index 6b11e841e537..fc47a07d6ccb 100644
--- a/sys/i386/linux/linux.h
+++ b/sys/i386/linux/linux.h
@@ -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;
};