summaryrefslogtreecommitdiff
path: root/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
diff options
context:
space:
mode:
authorSiddhesh Poyarekar <siddhesh@redhat.com>2012-10-16 14:23:01 +0530
committerSiddhesh Poyarekar <siddhesh@redhat.com>2012-10-16 14:23:35 +0530
commit9485a404440e392dbcfdc157bbdf5c863f9c0fce (patch)
tree6e03a935c732c07e5d7ada90bf8dbc49df0dbf74 /nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
parent172a631a1fc8ec8fcef80af1f91438d092957c3e (diff)
downloadglibc-9485a404440e392dbcfdc157bbdf5c863f9c0fce.tar.gz
Adjust mutex lock in condvar_cleanup if we got it from requeue_pi
This completes the fix to bz #14652.
Diffstat (limited to 'nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S')
-rw-r--r--nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S6
1 files changed, 5 insertions, 1 deletions
diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
index 6c6dc0e74d..2c6b515d83 100644
--- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
@@ -508,7 +508,11 @@ __condvar_cleanup1:
movl (%rdi), %eax
andl $TID_MASK, %eax
cmpl %eax, %fs:TID
- je 8f
+ jne 7f
+ /* We managed to get the lock. Fix it up before returning. */
+ callq __pthread_mutex_cond_lock_adjust
+ jmp 8f
+
7: callq __pthread_mutex_cond_lock