[rt] Update to 3.6.6-rt17

svn path=/dists/trunk/linux/; revision=19498
This commit is contained in:
Ben Hutchings 2012-11-15 04:49:54 +00:00
parent e0ca22e6db
commit c8c24a4003
6 changed files with 59 additions and 3 deletions

2
debian/changelog vendored
View File

@ -15,7 +15,7 @@ linux (3.6.6-1~experimental.1) UNRELEASED; urgency=low
ZRAM but now a dependency (Closes: #692024)
* fs: Re-enable link security restrictions that are disabled by default
in 3.6.5
* [rt] bump to 3.6.5-rt15
* [rt] Update to 3.6.6-rt17
* rc: Enable RC_DEVICES; re-enable LIRC; re-enable the drivers that
depend on those; enable IR_SANYO_DECODER and IR_IGUANA as modules

View File

@ -14,4 +14,4 @@ Index: linux-stable/localversion-rt
--- /dev/null
+++ linux-stable/localversion-rt
@@ -0,0 +1 @@
+-rt15
+-rt17

View File

@ -601,6 +601,7 @@ rcu-disable-rcu-fast-no-hz-on-rt.patch
net-fix-iptable-xt-write-recseq-begin-rt-fallout.patch
softirq-adapt-nohz-pending-debug-code-to-new-scheme.patch
softirq-add-more-debug.patch
softirq-fix-nohz-pending-issue-for-real.patch
net-netif-rx-ni-use-local-bh-disable.patch
fix-random-fallout.patch

View File

@ -32,7 +32,7 @@ Index: linux-stable/kernel/softirq.c
+void __raise_softirq_irqoff(unsigned int nr)
+{
+ do_raise_softirq_irqoff(nr);
+ if (WARN_ON_ONCE(!in_irq() && !current->softirq_nestcnt))
+ if (!in_irq() && !current->softirq_nestcnt)
+ wakeup_softirqd();
+}
+

View File

@ -0,0 +1,54 @@
Subject: softirq: Fix nohz pending issue for real
From: Thomas Gleixner <tglx@linutronix.de>
Date: Mon, 12 Nov 2012 22:07:34 +0100
We really need to iterate through all softirqs to find a potentially
blocked runner.
T1 runs softirq X (that cleared pending bit for X)
Interrupt raises softirq Y
T1 gets blocked on a lock and lock owner is not runnable
T1 schedules out
CPU goes idle and complains about pending softirq Y.
Now iterating over all softirqs lets us find the runner for X and
eliminate Y from the to warn about list as well.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
kernel/softirq.c | 13 ++++---------
1 file changed, 4 insertions(+), 9 deletions(-)
Index: linux-stable/kernel/softirq.c
===================================================================
--- linux-stable.orig/kernel/softirq.c
+++ linux-stable/kernel/softirq.c
@@ -100,20 +100,15 @@ void softirq_check_pending_idle(void)
{
static int rate_limit;
struct softirq_runner *sr = &__get_cpu_var(softirq_runners);
- u32 warnpending, pending = local_softirq_pending();
+ u32 warnpending = local_softirq_pending();
+ int i;
if (rate_limit >= 10)
return;
- warnpending = pending;
-
- while (pending) {
- struct task_struct *tsk;
- int i = __ffs(pending);
-
- pending &= ~(1 << i);
+ for (i = 0; i < NR_SOFTIRQS; i++) {
+ struct task_struct *tsk = sr->runner[i];
- tsk = sr->runner[i];
/*
* The wakeup code in rtmutex.c wakes up the task
* _before_ it sets pi_blocked_on to NULL under

View File

@ -601,6 +601,7 @@ features/all/rt/rcu-disable-rcu-fast-no-hz-on-rt.patch
features/all/rt/net-fix-iptable-xt-write-recseq-begin-rt-fallout.patch
features/all/rt/softirq-adapt-nohz-pending-debug-code-to-new-scheme.patch
features/all/rt/softirq-add-more-debug.patch
features/all/rt/softirq-fix-nohz-pending-issue-for-real.patch
features/all/rt/net-netif-rx-ni-use-local-bh-disable.patch
features/all/rt/fix-random-fallout.patch