summary refs log tree commit diff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2009-07-23 16:39:06 -0700
committerUlrich Drepper <drepper@redhat.com>2009-07-23 16:39:06 -0700
commitf1adf1f490b33a61eccad1682fbd9b1b66d404bd (patch)
treee5fedd61b87e8e811690b57b51577b305c9339b2
parentb2509a1e380bc92ee6ae6437103d349e1f517773 (diff)
downloadglibc-f1adf1f490b33a61eccad1682fbd9b1b66d404bd.tar.gz
glibc-f1adf1f490b33a61eccad1682fbd9b1b66d404bd.tar.xz
glibc-f1adf1f490b33a61eccad1682fbd9b1b66d404bd.zip
Fix pthread_cond_timedwait error handling on old kernels.
-rw-r--r--nptl/ChangeLog5
-rw-r--r--nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S4
2 files changed, 7 insertions, 2 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index 2f0b8d8b7c..68fe3779c3 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,8 @@
+2009-07-23  Ulrich Drepper  <drepper@redhat.com>
+
+	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Fix error
+	path when not using absolute timeout futex.
+
 2009-07-20  Ulrich Drepper  <drepper@redhat.com>
 
 	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Minor
diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
index e12790cb96..7486825d5f 100644
--- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
@@ -551,12 +551,12 @@ __pthread_cond_timedwait:
 	jne	53b
 
 	cmpq	24(%rsp), %r9
-	jbe	45b
+	jbe	15f
 
 	cmpq	%rax, %r9
 	ja	39b
 
-	cmpq	$-ETIMEDOUT, %r14
+15:	cmpq	$-ETIMEDOUT, %r14
 	jne	8b
 
 	jmp	99b