[PATCH] for_each_possible_cpu: s390

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.

Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
KAMEZAWA Hiroyuki 2006-03-31 02:30:26 -08:00 committed by Linus Torvalds
parent 3feb88562d
commit 97db7fbfc7
2 changed files with 4 additions and 4 deletions

View file

@ -801,7 +801,7 @@ void __init smp_prepare_cpus(unsigned int max_cpus)
*/ */
print_cpu_info(&S390_lowcore.cpu_data); print_cpu_info(&S390_lowcore.cpu_data);
for_each_cpu(i) { for_each_possible_cpu(i) {
lowcore_ptr[i] = (struct _lowcore *) lowcore_ptr[i] = (struct _lowcore *)
__get_free_pages(GFP_KERNEL|GFP_DMA, __get_free_pages(GFP_KERNEL|GFP_DMA,
sizeof(void*) == 8 ? 1 : 0); sizeof(void*) == 8 ? 1 : 0);
@ -831,7 +831,7 @@ void __init smp_prepare_cpus(unsigned int max_cpus)
#endif #endif
set_prefix((u32)(unsigned long) lowcore_ptr[smp_processor_id()]); set_prefix((u32)(unsigned long) lowcore_ptr[smp_processor_id()]);
for_each_cpu(cpu) for_each_possible_cpu(cpu)
if (cpu != smp_processor_id()) if (cpu != smp_processor_id())
smp_create_idle(cpu); smp_create_idle(cpu);
} }
@ -868,7 +868,7 @@ static int __init topology_init(void)
int cpu; int cpu;
int ret; int ret;
for_each_cpu(cpu) { for_each_possible_cpu(cpu) {
ret = register_cpu(&per_cpu(cpu_devices, cpu), cpu, NULL); ret = register_cpu(&per_cpu(cpu_devices, cpu), cpu, NULL);
if (ret) if (ret)
printk(KERN_WARNING "topology_init: register_cpu %d " printk(KERN_WARNING "topology_init: register_cpu %d "

View file

@ -46,7 +46,7 @@ extern unsigned long __per_cpu_offset[NR_CPUS];
#define percpu_modcopy(pcpudst, src, size) \ #define percpu_modcopy(pcpudst, src, size) \
do { \ do { \
unsigned int __i; \ unsigned int __i; \
for_each_cpu(__i) \ for_each_possible_cpu(__i) \
memcpy((pcpudst)+__per_cpu_offset[__i], \ memcpy((pcpudst)+__per_cpu_offset[__i], \
(src), (size)); \ (src), (size)); \
} while (0) } while (0)