aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDinakar Guniguntala <dino@in.ibm.com>2010-08-19 00:46:19 -0700
committerAndreas Schwab <schwab@redhat.com>2010-12-01 15:35:21 +0100
commitc86e42c53fc42195d2ed5926dbc4c8ce25bfa8fd (patch)
tree58355e1bbbf768842b455b045b24ef7fe8e9d89c
parenta5030ca9dc3e9451b3d364faed4b26dda4b82f7e (diff)
downloadglibc-c86e42c53fc42195d2ed5926dbc4c8ce25bfa8fd.tar
glibc-c86e42c53fc42195d2ed5926dbc4c8ce25bfa8fd.tar.gz
glibc-c86e42c53fc42195d2ed5926dbc4c8ce25bfa8fd.tar.bz2
glibc-c86e42c53fc42195d2ed5926dbc4c8ce25bfa8fd.zip
Fix x86 pthread_cond_signal() FUTEX_WAKE_OP fallback
(cherry picked from commit 022f6b89208acd2a67eb28a94d6d240e85088398)
-rw-r--r--nptl/ChangeLog6
-rw-r--r--nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S3
2 files changed, 7 insertions, 2 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index 66ff9196a0..cf038e3416 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,9 @@
+2010-08-10 Dinakar Guniguntala <dino@in.ibm.com>
+ Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
+
+ * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: If
+ FUTEX_WAKE_OP fails make sure to call FUTEX_WAKE instead.
+
2010-07-03 Ulrich Drepper <drepper@redhat.com>
* tst-abstime.c (do_test): Some more cleanups
diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
index 9fc2cbfeaf..05cda25d3e 100644
--- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
+++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002,2003,2004,2005,2007,2009 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2005,2007,2009,2010 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
@@ -163,7 +163,6 @@ __pthread_cond_signal:
#endif
orl $FUTEX_WAKE, %ecx
- xorl $(FUTEX_WAKE ^ FUTEX_WAKE_OP), %ecx
movl $SYS_futex, %eax
/* %edx should be 1 already from $FUTEX_WAKE_OP syscall.
movl $1, %edx */