aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc64/kernel/smp.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@sunset.davemloft.net>2007-07-15 04:29:24 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2007-07-16 07:05:19 -0400
commit39dd992aee381ff5077536853051fc69e58cc4a9 (patch)
tree93bf853c70932031fdf372f7aaa578ea0a3a42b6 /arch/sparc64/kernel/smp.c
parentb37d40d1759a383208ef47be8af94ebe59031691 (diff)
[SPARC64]: Clear cpu_{core,sibling}_map[] in smp_fill_in_sib_core_maps()
When we hot-plug in new cpus, the core_id and proc_id of existing cpus can change. So in order to set the cpu groups correctly we need to clear the maps out completely first. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc64/kernel/smp.c')
-rw-r--r--arch/sparc64/kernel/smp.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/sparc64/kernel/smp.c b/arch/sparc64/kernel/smp.c
index 6956845b03fa..e038ae65cb62 100644
--- a/arch/sparc64/kernel/smp.c
+++ b/arch/sparc64/kernel/smp.c
@@ -1244,6 +1244,7 @@ void __devinit smp_fill_in_sib_core_maps(void)
1244 for_each_possible_cpu(i) { 1244 for_each_possible_cpu(i) {
1245 unsigned int j; 1245 unsigned int j;
1246 1246
1247 cpus_clear(cpu_core_map[i]);
1247 if (cpu_data(i).core_id == 0) { 1248 if (cpu_data(i).core_id == 0) {
1248 cpu_set(i, cpu_core_map[i]); 1249 cpu_set(i, cpu_core_map[i]);
1249 continue; 1250 continue;
@@ -1259,6 +1260,7 @@ void __devinit smp_fill_in_sib_core_maps(void)
1259 for_each_possible_cpu(i) { 1260 for_each_possible_cpu(i) {
1260 unsigned int j; 1261 unsigned int j;
1261 1262
1263 cpus_clear(cpu_sibling_map[i]);
1262 if (cpu_data(i).proc_id == -1) { 1264 if (cpu_data(i).proc_id == -1) {
1263 cpu_set(i, cpu_sibling_map[i]); 1265 cpu_set(i, cpu_sibling_map[i]);
1264 continue; 1266 continue;