From 27847b8e14f823f6f4fd8f00fbd65341695cb221 Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN\"" Date: Mon, 7 Oct 2013 00:16:20 +0200 Subject: libc/glibc: add latest version Take two patches from upstream at the same time. Signed-off-by: "Yann E. MORIN" --- ...ad_cond_broadcast-and-pthread_cond_signal.patch | 78 ++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 patches/glibc/2.18/110-2770d15-Fix-PI-mutex-check-in-pthread_cond_broadcast-and-pthread_cond_signal.patch (limited to 'patches/glibc/2.18/110-2770d15-Fix-PI-mutex-check-in-pthread_cond_broadcast-and-pthread_cond_signal.patch') diff --git a/patches/glibc/2.18/110-2770d15-Fix-PI-mutex-check-in-pthread_cond_broadcast-and-pthread_cond_signal.patch b/patches/glibc/2.18/110-2770d15-Fix-PI-mutex-check-in-pthread_cond_broadcast-and-pthread_cond_signal.patch new file mode 100644 index 00000000..7ad9fdf7 --- /dev/null +++ b/patches/glibc/2.18/110-2770d15-Fix-PI-mutex-check-in-pthread_cond_broadcast-and-pthread_cond_signal.patch @@ -0,0 +1,78 @@ +commit 2770d15e7e880821fc586619c59eb45180628e16 +Author: Siddhesh Poyarekar +Date: Thu Oct 3 08:26:21 2013 +0530 + + Fix PI mutex check in pthread_cond_broadcast and pthread_cond_signal + + Fixes BZ #15996. + + The check had a typo - it checked for PTHREAD_MUTEX_ROBUST_NP instead + of PTHREAD_MUTEX_ROBUST_NORMAL_NP. It has now been replaced by the + already existing convenience macro USE_REQUEUE_PI. + +diff --git a/NEWS b/NEWS +index f64fb82..fb6069d 100644 +--- a/NEWS ++++ b/NEWS +@@ -9,7 +9,7 @@ Version 2.18.1 + + * The following bugs are resolved with this release: + +- 15909. ++ 15909, 15996. + + Version 2.18 + +diff --git a/nptl/ChangeLog b/nptl/ChangeLog +index eae5079..2d78490 100644 +--- a/nptl/ChangeLog ++++ b/nptl/ChangeLog +@@ -1,3 +1,12 @@ ++2013-10-03 Siddhesh Poyarekar ++ ++ [BZ #15996] ++ * pthread_cond_broadcast.c (__pthread_cond_broadcast) ++ [lll_futex_cmp_requeue_pi && __ASSUME_REQUEUE_PI]: Use ++ USE_REQUEUE_PI. ++ * pthread_cond_signal.c (__pthread_cond_signal) ++ [lll_futex_cmd_requeue_pi && __ASSUME_REQUEUE_PI]: Likewise. ++ + 2013-07-23 David S. Miller + + * tst-cancel4.c (WRITE_BUFFER_SIZE): Adjust comment. +diff --git a/nptl/pthread_cond_broadcast.c b/nptl/pthread_cond_broadcast.c +index 0702ec0..7ba9efa 100644 +--- a/nptl/pthread_cond_broadcast.c ++++ b/nptl/pthread_cond_broadcast.c +@@ -63,10 +63,7 @@ __pthread_cond_broadcast (cond) + + #if (defined lll_futex_cmp_requeue_pi \ + && defined __ASSUME_REQUEUE_PI) +- int pi_flag = PTHREAD_MUTEX_PRIO_INHERIT_NP | PTHREAD_MUTEX_ROBUST_NP; +- pi_flag &= mut->__data.__kind; +- +- if (pi_flag == PTHREAD_MUTEX_PRIO_INHERIT_NP) ++ if (USE_REQUEUE_PI (mut)) + { + if (lll_futex_cmp_requeue_pi (&cond->__data.__futex, 1, INT_MAX, + &mut->__data.__lock, futex_val, +diff --git a/nptl/pthread_cond_signal.c b/nptl/pthread_cond_signal.c +index 102d0b3..ffc35dc 100644 +--- a/nptl/pthread_cond_signal.c ++++ b/nptl/pthread_cond_signal.c +@@ -49,14 +49,9 @@ __pthread_cond_signal (cond) + + #if (defined lll_futex_cmp_requeue_pi \ + && defined __ASSUME_REQUEUE_PI) +- int pi_flag = PTHREAD_MUTEX_PRIO_INHERIT_NP | PTHREAD_MUTEX_ROBUST_NP; + pthread_mutex_t *mut = cond->__data.__mutex; + +- /* Do not use requeue for pshared condvars. */ +- if (mut != (void *) ~0l) +- pi_flag &= mut->__data.__kind; +- +- if (__builtin_expect (pi_flag == PTHREAD_MUTEX_PRIO_INHERIT_NP, 0) ++ if (USE_REQUEUE_PI (mut) + /* This can only really fail with a ENOSYS, since nobody can modify + futex while we have the cond_lock. */ + && lll_futex_cmp_requeue_pi (&cond->__data.__futex, 1, 0, -- cgit v1.2.3