aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS2
-rw-r--r--nptl/ChangeLog8
-rw-r--r--nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S6
3 files changed, 12 insertions, 4 deletions
diff --git a/NEWS b/NEWS
index 73ab2b9..75d9706 100644
--- a/NEWS
+++ b/NEWS
@@ -12,7 +12,7 @@ Version 2.15
6779, 6783, 9696, 10709, 11589, 12403, 12847, 12868, 12852, 12874, 12885,
12892, 12907, 12922, 12935, 13007, 13021, 13067, 13068, 13090, 13092,
13114, 13118, 13123, 13134, 13138, 13150, 13179, 13192, 13268, 13291,
- 13335, 13337, 13344
+ 13335, 13337, 13344, 13358
* New program pldd to list loaded object of a process
Implemented by Ulrich Drepper.
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index 6b483d6..1c084f7 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,11 @@
+2011-10-29 Ulrich Drepper <drepper@gmail.com>
+
+ [BZ #13358]
+ * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
+ (__pthread_cond_timedwait): Initialize %r15 correctly also for code
+ path for kernels with FUTEX_CLOCK_REALTIME.
+ Debugged by H.J. Lu <hjl.tools@gmail.com>.
+
2011-10-27 Andreas Schwab <schwab@redhat.com>
[BZ #13344]
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 d11b297..acbd3fa 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
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2005, 2007, 2009, 2010, 2011 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2005,2007,2009,2010,2011 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
@@ -101,6 +101,8 @@ __pthread_cond_timedwait:
movq %rsi, dep_mutex(%rdi)
22:
+ xorl %r15d, %r15d
+
#ifndef __ASSUME_FUTEX_CLOCK_REALTIME
# ifdef PIC
cmpl $0, __have_futex_clock_realtime(%rip)
@@ -402,8 +404,6 @@ __pthread_cond_timedwait:
#ifndef __ASSUME_FUTEX_CLOCK_REALTIME
.Lreltmo:
- xorl %r15d, %r15d
-
/* Get internal lock. */
movl $1, %esi
xorl %eax, %eax