diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2016-02-28 14:57:13 +0100 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2016-02-28 14:57:13 +0100 |
commit | 1f5b31cf66208183133b983dc0ac196663418885 (patch) | |
tree | 5b83881fb0d902fe40028562df56054dc219f50d | |
parent | 47eec6126916d2e92064c577994f80996c57218b (diff) | |
download | 4.9-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.patch | 23 | ||||
-rw-r--r-- | patches/localversion.patch | 2 | ||||
-rw-r--r-- | patches/rtmutex-futex-prepare-rt.patch | 9 |
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 f16aa02b20cfc..62da320930ba9 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 ce9ff7811fe18..2f21b44007481 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 8907f8ccbe93e..236ba8714e7f5 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); |