summaryrefslogtreecommitdiffstats
path: root/debian/patches-rt/rtmutex-futex-prepare-rt.patch
diff options
context:
space:
mode:
authorRomain Perier <romain.perier@opensource.viveris.fr>2019-01-11 15:52:15 +0100
committerRomain Perier <romain.perier@opensource.viveris.fr>2019-01-11 17:44:15 +0100
commitfe5142170f582165349d8b4e1b4efa83b628b25e (patch)
treed6a7e3f96fe695ccf637407f04cd23028260470c /debian/patches-rt/rtmutex-futex-prepare-rt.patch
parentd31776d28df358119e1c1caec843cc2e6ca1bd8a (diff)
downloadlinux-debian-fe5142170f582165349d8b4e1b4efa83b628b25e.tar.gz
[rt] Update to 4.19.13-rt10
Diffstat (limited to 'debian/patches-rt/rtmutex-futex-prepare-rt.patch')
-rw-r--r--debian/patches-rt/rtmutex-futex-prepare-rt.patch14
1 files changed, 7 insertions, 7 deletions
diff --git a/debian/patches-rt/rtmutex-futex-prepare-rt.patch b/debian/patches-rt/rtmutex-futex-prepare-rt.patch
index 9cfe4f741..0078acace 100644
--- a/debian/patches-rt/rtmutex-futex-prepare-rt.patch
+++ b/debian/patches-rt/rtmutex-futex-prepare-rt.patch
@@ -1,7 +1,7 @@
Subject: rtmutex: Handle the various new futex race conditions
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 10 Jun 2011 11:04:15 +0200
-Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.10-rt8.tar.xz
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.13-rt10.tar.xz
RT opens a few new interesting race conditions in the rtmutex/futex
combo due to futex hash bucket lock being a 'sleeping' spinlock and
@@ -16,7 +16,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
--- a/kernel/futex.c
+++ b/kernel/futex.c
-@@ -2086,6 +2086,16 @@ static int futex_requeue(u32 __user *uad
+@@ -2143,6 +2143,16 @@ static int futex_requeue(u32 __user *uad
requeue_pi_wake_futex(this, &key2, hb2);
drop_count++;
continue;
@@ -33,7 +33,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
} else if (ret) {
/*
* rt_mutex_start_proxy_lock() detected a
-@@ -3126,7 +3136,7 @@ static int futex_wait_requeue_pi(u32 __u
+@@ -3183,7 +3193,7 @@ static int futex_wait_requeue_pi(u32 __u
struct hrtimer_sleeper timeout, *to = NULL;
struct futex_pi_state *pi_state = NULL;
struct rt_mutex_waiter rt_waiter;
@@ -42,7 +42,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
union futex_key key2 = FUTEX_KEY_INIT;
struct futex_q q = futex_q_init;
int res, ret;
-@@ -3184,20 +3194,55 @@ static int futex_wait_requeue_pi(u32 __u
+@@ -3241,20 +3251,55 @@ static int futex_wait_requeue_pi(u32 __u
/* Queue the futex_q, drop the hb lock, wait for wakeup. */
futex_wait_queue_me(hb, &q, to);
@@ -109,7 +109,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
/* Check if the requeue code acquired the second futex for us. */
if (!q.rt_waiter) {
-@@ -3206,7 +3251,8 @@ static int futex_wait_requeue_pi(u32 __u
+@@ -3263,7 +3308,8 @@ static int futex_wait_requeue_pi(u32 __u
* did a lock-steal - fix up the PI-state in that case.
*/
if (q.pi_state && (q.pi_state->owner != current)) {
@@ -119,7 +119,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
ret = fixup_pi_state_owner(uaddr2, &q, current);
if (ret && rt_mutex_owner(&q.pi_state->pi_mutex) == current) {
pi_state = q.pi_state;
-@@ -3217,7 +3263,7 @@ static int futex_wait_requeue_pi(u32 __u
+@@ -3274,7 +3320,7 @@ static int futex_wait_requeue_pi(u32 __u
* the requeue_pi() code acquired for us.
*/
put_pi_state(q.pi_state);
@@ -128,7 +128,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
}
} else {
struct rt_mutex *pi_mutex;
-@@ -3231,7 +3277,8 @@ static int futex_wait_requeue_pi(u32 __u
+@@ -3288,7 +3334,8 @@ static int futex_wait_requeue_pi(u32 __u
pi_mutex = &q.pi_state->pi_mutex;
ret = rt_mutex_wait_proxy_lock(pi_mutex, to, &rt_waiter);