summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2016-02-28 14:57:13 +0100
committerThomas Gleixner <tglx@linutronix.de>2016-02-28 14:57:13 +0100
commit1f5b31cf66208183133b983dc0ac196663418885 (patch)
tree5b83881fb0d902fe40028562df56054dc219f50d
parent47eec6126916d2e92064c577994f80996c57218b (diff)
download4.12-rt-patches-1f5b31cf66208183133b983dc0ac196663418885.tar.gz
[ANNOUNCE] 4.4.3-rt8
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-rw-r--r--patches/dump-stack-don-t-disable-preemption-during-trace.patch23
-rw-r--r--patches/localversion.patch2
-rw-r--r--patches/rtmutex-futex-prepare-rt.patch9
3 files changed, 9 insertions, 25 deletions
diff --git a/patches/dump-stack-don-t-disable-preemption-during-trace.patch b/patches/dump-stack-don-t-disable-preemption-during-trace.patch
index f16aa02b20cfcc..62da320930ba9a 100644
--- a/patches/dump-stack-don-t-disable-preemption-during-trace.patch
+++ b/patches/dump-stack-don-t-disable-preemption-during-trace.patch
@@ -15,8 +15,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
---
arch/x86/kernel/dumpstack_32.c | 4 ++--
arch/x86/kernel/dumpstack_64.c | 8 ++++----
- lib/dump_stack.c | 4 ++--
- 3 files changed, 8 insertions(+), 8 deletions(-)
+ 2 files changed, 6 insertions(+), 6 deletions(-)
--- a/arch/x86/kernel/dumpstack_32.c
+++ b/arch/x86/kernel/dumpstack_32.c
@@ -76,23 +75,3 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
pr_cont("\n");
show_trace_log_lvl(task, regs, sp, bp, log_lvl);
---- a/lib/dump_stack.c
-+++ b/lib/dump_stack.c
-@@ -33,7 +33,7 @@ asmlinkage __visible void dump_stack(voi
- * Permit this cpu to perform nested stack dumps while serialising
- * against other CPUs
- */
-- preempt_disable();
-+ migrate_disable();
-
- retry:
- cpu = smp_processor_id();
-@@ -52,7 +52,7 @@ asmlinkage __visible void dump_stack(voi
- if (!was_locked)
- atomic_set(&dump_lock, -1);
-
-- preempt_enable();
-+ migrate_enable();
- }
- #else
- asmlinkage __visible void dump_stack(void)
diff --git a/patches/localversion.patch b/patches/localversion.patch
index ce9ff7811fe18b..2f21b44007481e 100644
--- a/patches/localversion.patch
+++ b/patches/localversion.patch
@@ -10,4 +10,4 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
--- /dev/null
+++ b/localversion-rt
@@ -0,0 +1 @@
-+-rt7
++-rt8
diff --git a/patches/rtmutex-futex-prepare-rt.patch b/patches/rtmutex-futex-prepare-rt.patch
index 8907f8ccbe93e9..236ba8714e7f50 100644
--- a/patches/rtmutex-futex-prepare-rt.patch
+++ b/patches/rtmutex-futex-prepare-rt.patch
@@ -108,7 +108,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
/* Check if the requeue code acquired the second futex for us. */
if (!q.rt_waiter) {
-@@ -2753,9 +2798,10 @@ static int futex_wait_requeue_pi(u32 __u
+@@ -2753,14 +2798,15 @@ 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)) {
@@ -116,12 +116,17 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+ spin_lock(&hb2->lock);
+ BUG_ON(&hb2->lock != q.lock_ptr);
ret = fixup_pi_state_owner(uaddr2, &q, current);
+ /*
+ * Drop the reference to the pi state which
+ * the requeue_pi() code acquired for us.
+ */
+ free_pi_state(q.pi_state);
- spin_unlock(q.lock_ptr);
+ spin_unlock(&hb2->lock);
}
} else {
/*
-@@ -2768,7 +2814,8 @@ static int futex_wait_requeue_pi(u32 __u
+@@ -2773,7 +2819,8 @@ static int futex_wait_requeue_pi(u32 __u
ret = rt_mutex_finish_proxy_lock(pi_mutex, to, &rt_waiter);
debug_rt_mutex_free_waiter(&rt_waiter);