about summary refs log tree commit diff
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.gz
glibc-c86e42c53fc42195d2ed5926dbc4c8ce25bfa8fd.tar.xz
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  */