On Tue, Jan 22, 2013 at 3:41 PM, Srivatsa S. Bhat <srivatsa.b...@linux.vnet.ibm.com> wrote: > Once stop_machine() is gone from the CPU offline path, we won't be able to > depend on preempt_disable() or local_irq_disable() to prevent CPUs from > going offline from under us. > > Use the get/put_online_cpus_atomic() APIs to prevent CPUs from going offline, > while invoking from atomic context. > > Cc: Mike Frysinger <vap...@gentoo.org> > Cc: Bob Liu <lliu...@gmail.com> > Cc: Steven Miao <real...@gmail.com> > Cc: uclinux-dist-de...@blackfin.uclinux.org > Signed-off-by: Srivatsa S. Bhat <srivatsa.b...@linux.vnet.ibm.com>
Thanks, will be applied to my blackfin arch tree. > --- > > arch/blackfin/mach-common/smp.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/arch/blackfin/mach-common/smp.c b/arch/blackfin/mach-common/smp.c > index bb61ae4..6cc6d7a 100644 > --- a/arch/blackfin/mach-common/smp.c > +++ b/arch/blackfin/mach-common/smp.c > @@ -194,6 +194,7 @@ void send_ipi(const struct cpumask *cpumask, enum > ipi_message_type msg) > struct ipi_data *bfin_ipi_data; > unsigned long flags; > > + get_online_cpus_atomic(); > local_irq_save(flags); > smp_mb(); > for_each_cpu(cpu, cpumask) { > @@ -205,6 +206,7 @@ void send_ipi(const struct cpumask *cpumask, enum > ipi_message_type msg) > } > > local_irq_restore(flags); > + put_online_cpus_atomic(); > } > > void arch_send_call_function_single_ipi(int cpu) > @@ -238,13 +240,13 @@ void smp_send_stop(void) > { > cpumask_t callmap; > > - preempt_disable(); > + get_online_cpus_atomic(); > cpumask_copy(&callmap, cpu_online_mask); > cpumask_clear_cpu(smp_processor_id(), &callmap); > if (!cpumask_empty(&callmap)) > send_ipi(&callmap, BFIN_IPI_CPU_STOP); > > - preempt_enable(); > + put_online_cpus_atomic(); > > return; > } > > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majord...@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ -- Regards, --Bob _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev