aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc64/kernel/smp.c
diff options
context:
space:
mode:
authorKAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>2006-04-11 01:52:52 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-04-11 09:18:31 -0400
commita283a52520569195c2d26d75455cddab758f530b (patch)
tree3ea10360b06dad909dc5b9e48b7236bcf23f3fab /arch/sparc64/kernel/smp.c
parentfff8efe7b71efd88829782be64dc42c25c70ad53 (diff)
[PATCH] for_each_possible_cpu: sparc64
for_each_cpu() actually iterates across all possible CPUs. We've had mistakes in the past where people were using for_each_cpu() where they should have been iterating across only online or present CPUs. This is inefficient and possibly buggy. We're renaming for_each_cpu() to for_each_possible_cpu() to avoid this in the future. This patch replaces for_each_cpu with for_each_possible_cpu. for sparc64. Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Acked-by: "David S. Miller" <davem@davemloft.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/sparc64/kernel/smp.c')
-rw-r--r--arch/sparc64/kernel/smp.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/sparc64/kernel/smp.c b/arch/sparc64/kernel/smp.c
index eb36f7988ff7..90eaca3ec9a6 100644
--- a/arch/sparc64/kernel/smp.c
+++ b/arch/sparc64/kernel/smp.c
@@ -1280,7 +1280,7 @@ int setup_profiling_timer(unsigned int multiplier)
1280 return -EINVAL; 1280 return -EINVAL;
1281 1281
1282 spin_lock_irqsave(&prof_setup_lock, flags); 1282 spin_lock_irqsave(&prof_setup_lock, flags);
1283 for_each_cpu(i) 1283 for_each_possible_cpu(i)
1284 prof_multiplier(i) = multiplier; 1284 prof_multiplier(i) = multiplier;
1285 current_tick_offset = (timer_tick_offset / multiplier); 1285 current_tick_offset = (timer_tick_offset / multiplier);
1286 spin_unlock_irqrestore(&prof_setup_lock, flags); 1286 spin_unlock_irqrestore(&prof_setup_lock, flags);
@@ -1308,12 +1308,12 @@ void __init smp_prepare_cpus(unsigned int max_cpus)
1308 } 1308 }
1309 } 1309 }
1310 1310
1311 for_each_cpu(i) { 1311 for_each_possible_cpu(i) {
1312 if (tlb_type == hypervisor) { 1312 if (tlb_type == hypervisor) {
1313 int j; 1313 int j;
1314 1314
1315 /* XXX get this mapping from machine description */ 1315 /* XXX get this mapping from machine description */
1316 for_each_cpu(j) { 1316 for_each_possible_cpu(j) {
1317 if ((j >> 2) == (i >> 2)) 1317 if ((j >> 2) == (i >> 2))
1318 cpu_set(j, cpu_sibling_map[i]); 1318 cpu_set(j, cpu_sibling_map[i]);
1319 } 1319 }