about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--nptl/ChangeLog13
-rw-r--r--nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S2
2 files changed, 15 insertions, 0 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index 84d9b71a7c..f5c5299c81 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,16 @@
+2006-03-01  Ulrich Drepper  <drepper@redhat.com>
+
+	* sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S
+	(__lll_robust_lock_wait): Also set FUTEX_WAITERS bit if we got the
+	mutex.
+	(__lll_robust_timedlock_wait): Likewise.
+	* sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S
+	(__lll_robust_lock_wait): Likewise.
+	(__lll_robust_timedlock_wait): Likewise.
+	* sysdeps/unix/sysv/linux/lowlevelrobustlock.c
+	(__lll_robust_lock_wait): Likewise.
+	(__lll_robust_timedlock_wait): Likewise.
+
 2006-03-01  Jakub Jelinek  <jakub@redhat.com>
 
 	* sysdeps/unix/sysv/linux/sparc/lowlevellock.h (lll_robust_mutex_dead,
diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S b/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S
index 7bb9191691..1a088e27b1 100644
--- a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S
+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S
@@ -78,6 +78,7 @@ __lll_robust_mutex_lock_wait:
 	jne	4b
 
 	movl	%fs:TID, %edx
+	orl	$FUTEX_WAITERS, %edx
 	LOCK
 	cmpxchgl %edx, (%rdi)
 	jnz	4b
@@ -169,6 +170,7 @@ __lll_robust_mutex_timedlock_wait:
 	jne	7f
 
 	movl	%fs:TID, %edx
+	orl	$FUTEX_WAITERS, %edx
 	LOCK
 	cmpxchgl %edx, (%r12)
 	jnz	7f