diff options
author | David S. Miller <davem@sunset.davemloft.net> | 2007-07-15 04:29:24 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-07-16 07:05:19 -0400 |
commit | 39dd992aee381ff5077536853051fc69e58cc4a9 (patch) | |
tree | 93bf853c70932031fdf372f7aaa578ea0a3a42b6 /arch/sparc64/kernel/smp.c | |
parent | b37d40d1759a383208ef47be8af94ebe59031691 (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.c | 2 |
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; |