]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.10-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 9 Jun 2014 19:14:38 +0000 (12:14 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 9 Jun 2014 19:14:38 +0000 (12:14 -0700)
added patches:
sched-fix-hotplug-vs.-set_cpus_allowed_ptr.patch

queue-3.10/sched-fix-hotplug-vs.-set_cpus_allowed_ptr.patch [new file with mode: 0644]
queue-3.10/series

diff --git a/queue-3.10/sched-fix-hotplug-vs.-set_cpus_allowed_ptr.patch b/queue-3.10/sched-fix-hotplug-vs.-set_cpus_allowed_ptr.patch
new file mode 100644 (file)
index 0000000..8d7bd9d
--- /dev/null
@@ -0,0 +1,70 @@
+From 6acbfb96976fc3350e30d964acb1dbbdf876d55e Mon Sep 17 00:00:00 2001
+From: Lai Jiangshan <laijs@cn.fujitsu.com>
+Date: Fri, 16 May 2014 11:50:42 +0800
+Subject: sched: Fix hotplug vs. set_cpus_allowed_ptr()
+
+From: Lai Jiangshan <laijs@cn.fujitsu.com>
+
+commit 6acbfb96976fc3350e30d964acb1dbbdf876d55e upstream.
+
+Lai found that:
+
+  WARNING: CPU: 1 PID: 13 at arch/x86/kernel/smp.c:124 native_smp_send_reschedule+0x2d/0x4b()
+  ...
+  migration_cpu_stop+0x1d/0x22
+
+was caused by set_cpus_allowed_ptr() assuming that cpu_active_mask is
+always a sub-set of cpu_online_mask.
+
+This isn't true since 5fbd036b552f ("sched: Cleanup cpu_active madness").
+
+So set active and online at the same time to avoid this particular
+problem.
+
+Fixes: 5fbd036b552f ("sched: Cleanup cpu_active madness")
+Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
+Signed-off-by: Peter Zijlstra <peterz@infradead.org>
+Cc: Andrew Morton <akpm@linux-foundation.org>
+Cc: Gautham R. Shenoy <ego@linux.vnet.ibm.com>
+Cc: Linus Torvalds <torvalds@linux-foundation.org>
+Cc: Michael wang <wangyun@linux.vnet.ibm.com>
+Cc: Paul Gortmaker <paul.gortmaker@windriver.com>
+Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
+Cc: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
+Cc: Toshi Kani <toshi.kani@hp.com>
+Link: http://lkml.kernel.org/r/53758B12.8060609@cn.fujitsu.com
+Signed-off-by: Ingo Molnar <mingo@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ kernel/cpu.c        |    6 ++++--
+ kernel/sched/core.c |    1 -
+ 2 files changed, 4 insertions(+), 3 deletions(-)
+
+--- a/kernel/cpu.c
++++ b/kernel/cpu.c
+@@ -698,10 +698,12 @@ void set_cpu_present(unsigned int cpu, b
+ void set_cpu_online(unsigned int cpu, bool online)
+ {
+-      if (online)
++      if (online) {
+               cpumask_set_cpu(cpu, to_cpumask(cpu_online_bits));
+-      else
++              cpumask_set_cpu(cpu, to_cpumask(cpu_active_bits));
++      } else {
+               cpumask_clear_cpu(cpu, to_cpumask(cpu_online_bits));
++      }
+ }
+ void set_cpu_active(unsigned int cpu, bool active)
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
+@@ -5270,7 +5270,6 @@ static int __cpuinit sched_cpu_active(st
+                                     unsigned long action, void *hcpu)
+ {
+       switch (action & ~CPU_TASKS_FROZEN) {
+-      case CPU_STARTING:
+       case CPU_DOWN_FAILED:
+               set_cpu_active((long)hcpu, true);
+               return NOTIFY_OK;
index d31d91faea87c00190052a6f8c445b18c258b04f..7b53c05e3ec5c9970b1aa0f4dfbac89cb084c6a4 100644 (file)
@@ -16,3 +16,4 @@ arm-omap3-clock-back-propagate-rate-change-from-cam_mclk-to-dpll4_m5-on-all-omap
 arm-omap4-fix-the-boot-regression-with-cpu_idle-enabled.patch
 arm-8051-1-put_user-fix-possible-data-corruption-in-put_user.patch
 dm-cache-always-split-discards-on-cache-block-boundaries.patch
+sched-fix-hotplug-vs.-set_cpus_allowed_ptr.patch