powerpc/vphn: Fix arch_update_cpu_topology() return value

arch_update_cpu_topology() should only return 1 when the topology has
actually changed, and should return 0 otherwise.

This patch fixes a potential bug where rebuild_sched_domains() would
reinitialize the sched domains even when the topology hasn't changed.

Signed-off-by: Jesse Larrew <jlarrew@linux.vnet.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
Jesse Larrew 2012-06-07 16:04:34 -05:00 committed by Benjamin Herrenschmidt
parent 5b716ac728
commit 79c5fcebfe
1 changed files with 4 additions and 3 deletions

View File

@ -1436,11 +1436,11 @@ static long vphn_get_associativity(unsigned long cpu,
/* /*
* Update the node maps and sysfs entries for each cpu whose home node * Update the node maps and sysfs entries for each cpu whose home node
* has changed. * has changed. Returns 1 when the topology has changed, and 0 otherwise.
*/ */
int arch_update_cpu_topology(void) int arch_update_cpu_topology(void)
{ {
int cpu, nid, old_nid; int cpu, nid, old_nid, changed = 0;
unsigned int associativity[VPHN_ASSOC_BUFSIZE] = {0}; unsigned int associativity[VPHN_ASSOC_BUFSIZE] = {0};
struct device *dev; struct device *dev;
@ -1466,9 +1466,10 @@ int arch_update_cpu_topology(void)
dev = get_cpu_device(cpu); dev = get_cpu_device(cpu);
if (dev) if (dev)
kobject_uevent(&dev->kobj, KOBJ_CHANGE); kobject_uevent(&dev->kobj, KOBJ_CHANGE);
changed = 1;
} }
return 1; return changed;
} }
static void topology_work_fn(struct work_struct *work) static void topology_work_fn(struct work_struct *work)