This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch master updated. glibc-2.17-777-gbe11d71
- From: carlos at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 10 Jun 2013 16:09:36 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.17-777-gbe11d71
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".
The branch, master has been updated
via be11d713940133fd4200fb96db8200092b05325e (commit)
from 0efa6f8b9906cddf2da36722449c8e30fb698b37 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=be11d713940133fd4200fb96db8200092b05325e
commit be11d713940133fd4200fb96db8200092b05325e
Author: Carlos O'Donell <carlos@redhat.com>
Date: Mon Jun 10 12:05:11 2013 -0400
x86*: Return syscall error for lll_futex_wake.
It is very very possible that the futex syscall returns an
error and that the caller of lll_futex_wake may want to
look at that error and propagate the failure.
This patch allows a caller to see the syscall error.
There are no users of the syscall error at present, but
future cleanups are now be able to check for the error.
--
nplt/
2013-06-10 Carlos O'Donell <carlos@redhat.com>
* sysdeps/unix/sysv/linux/i386/lowlevellock.h
(lll_futex_wake): Return syscall error.
* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
(lll_futex_wake): Return syscall error.
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index 0c666b9..8fb473f 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,10 @@
+2013-06-10 Carlos O'Donell <carlos@redhat.com>
+
+ * sysdeps/unix/sysv/linux/i386/lowlevellock.h
+ (lll_futex_wake): Return syscall error.
+ * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
+ (lll_futex_wake): Return syscall error.
+
2013-08-06 OndÅ?ej BÃlka <neleai@seznam.cz>
* sysdeps/pthread/allocalim.h: (__libc_use_alloca): Fix warning.
diff --git a/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h b/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h
index f51f650..f665ac9 100644
--- a/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h
+++ b/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h
@@ -224,20 +224,21 @@ LLL_STUB_UNWIND_INFO_END
#define lll_futex_wake(futex, nr, private) \
- do { \
- int __ignore; \
+ ({ \
+ int __status; \
register __typeof (nr) _nr asm ("edx") = (nr); \
LIBC_PROBE (lll_futex_wake, 3, futex, nr, private); \
__asm __volatile (LLL_EBX_LOAD \
LLL_ENTER_KERNEL \
LLL_EBX_LOAD \
- : "=a" (__ignore) \
+ : "=a" (__status) \
: "0" (SYS_futex), LLL_EBX_REG (futex), \
"c" (__lll_private_flag (FUTEX_WAKE, private)), \
"d" (_nr), \
"i" (0) /* phony, to align next arg's number */, \
"i" (offsetof (tcbhead_t, sysinfo))); \
- } while (0)
+ __status; \
+ })
/* NB: in the lll_trylock macro we simply return the value in %eax
diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h b/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
index 6722294..7a176ae 100644
--- a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
@@ -225,17 +225,18 @@ LLL_STUB_UNWIND_INFO_END
#define lll_futex_wake(futex, nr, private) \
- do { \
- int __ignore; \
+ ({ \
+ int __status; \
register __typeof (nr) _nr __asm ("edx") = (nr); \
LIBC_PROBE (lll_futex_wake, 3, futex, nr, private); \
__asm __volatile ("syscall" \
- : "=a" (__ignore) \
+ : "=a" (__status) \
: "0" (SYS_futex), "D" (futex), \
"S" (__lll_private_flag (FUTEX_WAKE, private)), \
"d" (_nr) \
: "memory", "cc", "r10", "r11", "cx"); \
- } while (0)
+ __status; \
+ })
/* NB: in the lll_trylock macro we simply return the value in %eax
-----------------------------------------------------------------------
Summary of changes:
nptl/ChangeLog | 7 +++++++
nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h | 9 +++++----
nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h | 9 +++++----
3 files changed, 17 insertions(+), 8 deletions(-)
hooks/post-receive
--
GNU C Library master sources