On Mon, Jun 24, 2013 at 09:14:23AM -0500, Nathan Fontenot wrote: > The topology update code that updates the cpu node registration in sysfs > should not be called while in stop_machine(). The register/unregister > calls take a lock and may sleep. > > This patch moves these calls outside of the call to stop_machine(). > > Signed-off-by:Nathan Fontenot <nf...@linux.vnet.ibm.com>
Reviewed-by: Seth Jennings <sjenn...@linux.vnet.ibm.com> > --- > arch/powerpc/mm/numa.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > Index: powerpc/arch/powerpc/mm/numa.c > =================================================================== > --- powerpc.orig/arch/powerpc/mm/numa.c 2013-06-24 06:53:31.000000000 > -0500 > +++ powerpc/arch/powerpc/mm/numa.c 2013-06-24 06:56:30.000000000 -0500 > @@ -1433,11 +1433,9 @@ > if (cpu != update->cpu) > continue; > > - unregister_cpu_under_node(update->cpu, update->old_nid); > unmap_cpu_from_node(update->cpu); > map_cpu_to_node(update->cpu, update->new_nid); > vdso_getcpu_init(); > - register_cpu_under_node(update->cpu, update->new_nid); > } > > return 0; > @@ -1485,6 +1483,9 @@ > stop_machine(update_cpu_topology, &updates[0], &updated_cpus); > > for (ud = &updates[0]; ud; ud = ud->next) { > + unregister_cpu_under_node(update->cpu, update->old_nid); > + register_cpu_under_node(update->cpu, update->new_nid); > + > dev = get_cpu_device(ud->cpu); > if (dev) > kobject_uevent(&dev->kobj, KOBJ_CHANGE); > > _______________________________________________ > Linuxppc-dev mailing list > Linuxppc-dev@lists.ozlabs.org > https://lists.ozlabs.org/listinfo/linuxppc-dev > _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev