about summary refs log tree commit diff
path: root/nptl
diff options
context:
space:
mode:
authorDinakar Guniguntala <dino@in.ibm.com>2010-08-19 00:46:19 -0700
committerUlrich Drepper <drepper@redhat.com>2010-08-19 00:46:19 -0700
commit022f6b89208acd2a67eb28a94d6d240e85088398 (patch)
tree265c3132af443064a21a320ad5de30ccbe29e09f /nptl
parentb9b42ee01c935133c025d3b20102c1e490354e8e (diff)
downloadglibc-022f6b89208acd2a67eb28a94d6d240e85088398.tar.gz
glibc-022f6b89208acd2a67eb28a94d6d240e85088398.tar.xz
glibc-022f6b89208acd2a67eb28a94d6d240e85088398.zip
Fix x86 pthread_cond_signal() FUTEX_WAKE_OP fallback
Diffstat (limited to 'nptl')
-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 a0fe7b069e..d4a1deb220 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-08-12  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* sysdeps/unix/sysv/linux/i386/Makefile: New file.
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  */