diff --git a/debian/changelog b/debian/changelog index c8b91ce65..294a7df6f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -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 diff --git a/debian/patches/features/all/rt/localversion.patch b/debian/patches/features/all/rt/localversion.patch index 06f5e8ea4..a473a1cad 100644 --- a/debian/patches/features/all/rt/localversion.patch +++ b/debian/patches/features/all/rt/localversion.patch @@ -14,4 +14,4 @@ Index: linux-stable/localversion-rt --- /dev/null +++ linux-stable/localversion-rt @@ -0,0 +1 @@ -+-rt15 ++-rt17 diff --git a/debian/patches/features/all/rt/series b/debian/patches/features/all/rt/series index f2043f50c..4162c2cd6 100644 --- a/debian/patches/features/all/rt/series +++ b/debian/patches/features/all/rt/series @@ -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 diff --git a/debian/patches/features/all/rt/softirq-add-more-debug.patch b/debian/patches/features/all/rt/softirq-add-more-debug.patch index 2a81a1ee5..8fb38c63b 100644 --- a/debian/patches/features/all/rt/softirq-add-more-debug.patch +++ b/debian/patches/features/all/rt/softirq-add-more-debug.patch @@ -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(); +} + diff --git a/debian/patches/features/all/rt/softirq-fix-nohz-pending-issue-for-real.patch b/debian/patches/features/all/rt/softirq-fix-nohz-pending-issue-for-real.patch new file mode 100644 index 000000000..28beca147 --- /dev/null +++ b/debian/patches/features/all/rt/softirq-fix-nohz-pending-issue-for-real.patch @@ -0,0 +1,54 @@ +Subject: softirq: Fix nohz pending issue for real +From: Thomas Gleixner +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 +--- + 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 diff --git a/debian/patches/series-rt b/debian/patches/series-rt index ff1eefb52..08f36d957 100644 --- a/debian/patches/series-rt +++ b/debian/patches/series-rt @@ -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