+++ /dev/null
-From 7c5c92ed56d932b2c19c3f8aea86369509407d33 Mon Sep 17 00:00:00 2001
-From: Anton Blanchard <anton@samba.org>
-Date: Tue, 9 Dec 2014 10:58:19 +1100
-Subject: powerpc: Secondary CPUs must set cpu_callin_map after setting active and online
-
-From: Anton Blanchard <anton@samba.org>
-
-commit 7c5c92ed56d932b2c19c3f8aea86369509407d33 upstream.
-
-I have a busy ppc64le KVM box where guests sometimes hit the infamous
-"kernel BUG at kernel/smpboot.c:134!" issue during boot:
-
- BUG_ON(td->cpu != smp_processor_id());
-
-Basically a per CPU hotplug thread scheduled on the wrong CPU. The oops
-output confirms it:
-
- CPU: 0
- Comm: watchdog/130
-
-The problem is that we aren't ensuring the CPU active and online bits are set
-before allowing the master to continue on. The master unparks the secondary
-CPUs kthreads and the scheduler looks for a CPU to run on. It calls
-select_task_rq and realises the suggested CPU is not in the cpus_allowed
-mask. It then ends up in select_fallback_rq, and since the active and
-online bits aren't set we choose some other CPU to run on.
-
-Signed-off-by: Anton Blanchard <anton@samba.org>
-Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- arch/powerpc/kernel/smp.c | 9 ++++++++-
- 1 file changed, 8 insertions(+), 1 deletion(-)
-
---- a/arch/powerpc/kernel/smp.c
-+++ b/arch/powerpc/kernel/smp.c
-@@ -622,7 +622,6 @@ __cpuinit void start_secondary(void *unu
- smp_store_cpu_info(cpu);
- set_dec(tb_ticks_per_jiffy);
- preempt_disable();
-- cpu_callin_map[cpu] = 1;
-
- if (smp_ops->setup_cpu)
- smp_ops->setup_cpu(cpu);
-@@ -667,6 +666,14 @@ __cpuinit void start_secondary(void *unu
- }
- of_node_put(l2_cache);
-
-+ /*
-+ * CPU must be marked active and online before we signal back to the
-+ * master, because the scheduler needs to see the cpu_online and
-+ * cpu_active bits set.
-+ */
-+ smp_wmb();
-+ cpu_callin_map[cpu] = 1;
-+
- local_irq_enable();
-
- cpu_startup_entry(CPUHP_ONLINE);
asoc-sigmadsp-refuse-to-load-firmware-files-with-a-non-supported-version.patch
asoc-max98090-fix-ill-defined-sidetone-route.patch
asoc-dwc-ensure-fifos-are-flushed-to-prevent-channel-swap.patch
-powerpc-secondary-cpus-must-set-cpu_callin_map-after-setting-active-and-online.patch
pci-restore-detection-of-read-only-bars.patch
pstore-ram-fix-hangs-by-using-write-combine-mappings.patch
pstore-ram-allow-optional-mapping-with-pgprot_noncached.patch
+++ /dev/null
-From 7c5c92ed56d932b2c19c3f8aea86369509407d33 Mon Sep 17 00:00:00 2001
-From: Anton Blanchard <anton@samba.org>
-Date: Tue, 9 Dec 2014 10:58:19 +1100
-Subject: powerpc: Secondary CPUs must set cpu_callin_map after setting active and online
-
-From: Anton Blanchard <anton@samba.org>
-
-commit 7c5c92ed56d932b2c19c3f8aea86369509407d33 upstream.
-
-I have a busy ppc64le KVM box where guests sometimes hit the infamous
-"kernel BUG at kernel/smpboot.c:134!" issue during boot:
-
- BUG_ON(td->cpu != smp_processor_id());
-
-Basically a per CPU hotplug thread scheduled on the wrong CPU. The oops
-output confirms it:
-
- CPU: 0
- Comm: watchdog/130
-
-The problem is that we aren't ensuring the CPU active and online bits are set
-before allowing the master to continue on. The master unparks the secondary
-CPUs kthreads and the scheduler looks for a CPU to run on. It calls
-select_task_rq and realises the suggested CPU is not in the cpus_allowed
-mask. It then ends up in select_fallback_rq, and since the active and
-online bits aren't set we choose some other CPU to run on.
-
-Signed-off-by: Anton Blanchard <anton@samba.org>
-Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- arch/powerpc/kernel/smp.c | 9 ++++++++-
- 1 file changed, 8 insertions(+), 1 deletion(-)
-
---- a/arch/powerpc/kernel/smp.c
-+++ b/arch/powerpc/kernel/smp.c
-@@ -707,7 +707,6 @@ void start_secondary(void *unused)
- smp_store_cpu_info(cpu);
- set_dec(tb_ticks_per_jiffy);
- preempt_disable();
-- cpu_callin_map[cpu] = 1;
-
- if (smp_ops->setup_cpu)
- smp_ops->setup_cpu(cpu);
-@@ -743,6 +742,14 @@ void start_secondary(void *unused)
- notify_cpu_starting(cpu);
- set_cpu_online(cpu, true);
-
-+ /*
-+ * CPU must be marked active and online before we signal back to the
-+ * master, because the scheduler needs to see the cpu_online and
-+ * cpu_active bits set.
-+ */
-+ smp_wmb();
-+ cpu_callin_map[cpu] = 1;
-+
- local_irq_enable();
-
- cpu_startup_entry(CPUHP_ONLINE);
asoc-dwc-ensure-fifos-are-flushed-to-prevent-channel-swap.patch
powerpc-fix-bad-null-pointer-check-in-udbg_uart_getc_poll.patch
powerpc-book3s-fix-partial-invalidation-of-tlbs-in-mce-code.patch
-powerpc-secondary-cpus-must-set-cpu_callin_map-after-setting-active-and-online.patch
powerpc-powernv-switch-off-mmu-before-entering-nap-sleep-rvwinkle-mode.patch
pci-restore-detection-of-read-only-bars.patch
pstore-ram-fix-hangs-by-using-write-combine-mappings.patch
+++ /dev/null
-From 7c5c92ed56d932b2c19c3f8aea86369509407d33 Mon Sep 17 00:00:00 2001
-From: Anton Blanchard <anton@samba.org>
-Date: Tue, 9 Dec 2014 10:58:19 +1100
-Subject: powerpc: Secondary CPUs must set cpu_callin_map after setting active and online
-
-From: Anton Blanchard <anton@samba.org>
-
-commit 7c5c92ed56d932b2c19c3f8aea86369509407d33 upstream.
-
-I have a busy ppc64le KVM box where guests sometimes hit the infamous
-"kernel BUG at kernel/smpboot.c:134!" issue during boot:
-
- BUG_ON(td->cpu != smp_processor_id());
-
-Basically a per CPU hotplug thread scheduled on the wrong CPU. The oops
-output confirms it:
-
- CPU: 0
- Comm: watchdog/130
-
-The problem is that we aren't ensuring the CPU active and online bits are set
-before allowing the master to continue on. The master unparks the secondary
-CPUs kthreads and the scheduler looks for a CPU to run on. It calls
-select_task_rq and realises the suggested CPU is not in the cpus_allowed
-mask. It then ends up in select_fallback_rq, and since the active and
-online bits aren't set we choose some other CPU to run on.
-
-Signed-off-by: Anton Blanchard <anton@samba.org>
-Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- arch/powerpc/kernel/smp.c | 9 ++++++++-
- 1 file changed, 8 insertions(+), 1 deletion(-)
-
---- a/arch/powerpc/kernel/smp.c
-+++ b/arch/powerpc/kernel/smp.c
-@@ -700,7 +700,6 @@ void start_secondary(void *unused)
- smp_store_cpu_info(cpu);
- set_dec(tb_ticks_per_jiffy);
- preempt_disable();
-- cpu_callin_map[cpu] = 1;
-
- if (smp_ops->setup_cpu)
- smp_ops->setup_cpu(cpu);
-@@ -739,6 +738,14 @@ void start_secondary(void *unused)
- notify_cpu_starting(cpu);
- set_cpu_online(cpu, true);
-
-+ /*
-+ * CPU must be marked active and online before we signal back to the
-+ * master, because the scheduler needs to see the cpu_online and
-+ * cpu_active bits set.
-+ */
-+ smp_wmb();
-+ cpu_callin_map[cpu] = 1;
-+
- local_irq_enable();
-
- cpu_startup_entry(CPUHP_ONLINE);
ktest-fix-make_min_config-to-handle-new-assign_configs-call.patch
powerpc-fix-bad-null-pointer-check-in-udbg_uart_getc_poll.patch
powerpc-book3s-fix-partial-invalidation-of-tlbs-in-mce-code.patch
-powerpc-secondary-cpus-must-set-cpu_callin_map-after-setting-active-and-online.patch
powerpc-powernv-switch-off-mmu-before-entering-nap-sleep-rvwinkle-mode.patch
powerpc-perf-hv-24x7-use-per-cpu-page-buffer.patch
powerpc-add-little-endian-flag-to-syscall_get_arch.patch