summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Gortmaker <paul.gortmaker@windriver.com>2017-11-29 14:50:23 -0500
committerPaul Gortmaker <paul.gortmaker@windriver.com>2017-11-29 14:50:23 -0500
commit81ffc78d3845274329aff87ca0d5dd0902351a62 (patch)
tree6f2b359fd96f8850ebbdba3273ab129686021adf
parente817b01d116eae783cdf14da534eb6d3d28a3efd (diff)
download4.12-rt-patches-81ffc78d3845274329aff87ca0d5dd0902351a62.tar.gz
futex: refresh patch for stable backport of c74aef2d06a
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
-rw-r--r--patches/futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch16
1 files changed, 10 insertions, 6 deletions
diff --git a/patches/futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch b/patches/futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch
index 70e3601e1aa81..6fe021d65f0a2 100644
--- a/patches/futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch
+++ b/patches/futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch
@@ -1,6 +1,8 @@
+From 04915f95519eedd70dd247794358b3136a4000f3 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 1 Mar 2013 11:17:42 +0100
-Subject: futex: Ensure lock/unlock symetry versus pi_lock and hash bucket lock
+Subject: [PATCH] futex: Ensure lock/unlock symetry versus pi_lock and hash
+ bucket lock
In exit_pi_state_list() we have the following locking construct:
@@ -24,19 +26,21 @@ head again under the pi_lock.
Reported-by: Yong Zhang <yong.zhang@windriver.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
----
- kernel/futex.c | 2 ++
- 1 file changed, 2 insertions(+)
+diff --git a/kernel/futex.c b/kernel/futex.c
+index bebcc1a0dcf7..8633f667560e 100644
--- a/kernel/futex.c
+++ b/kernel/futex.c
-@@ -911,7 +911,9 @@ void exit_pi_state_list(struct task_stru
- * task still owns the PI-state:
+@@ -917,7 +917,9 @@ void exit_pi_state_list(struct task_struct *curr)
*/
if (head->next != next) {
+ raw_spin_unlock(&pi_state->pi_mutex.wait_lock);
+ raw_spin_unlock_irq(&curr->pi_lock);
spin_unlock(&hb->lock);
+ raw_spin_lock_irq(&curr->pi_lock);
continue;
}
+--
+2.15.0
+