diff options
author | KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> | 2006-03-31 05:30:26 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-31 15:18:52 -0500 |
commit | 97db7fbfc7712bc403330c81c04ddfa82b335bce (patch) | |
tree | 7461ab8f77bb3da67bcd35a50baa6596334cd89a | |
parent | 3feb88562d149f078319e5a1b2f7acaa10251a5c (diff) |
[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>
-rw-r--r-- | arch/s390/kernel/smp.c | 6 | ||||
-rw-r--r-- | include/asm-s390/percpu.h | 2 |
2 files changed, 4 insertions, 4 deletions
diff --git a/arch/s390/kernel/smp.c b/arch/s390/kernel/smp.c index 2b8841f85534..343120c9223d 100644 --- a/arch/s390/kernel/smp.c +++ b/arch/s390/kernel/smp.c | |||
@@ -801,7 +801,7 @@ void __init smp_prepare_cpus(unsigned int max_cpus) | |||
801 | */ | 801 | */ |
802 | print_cpu_info(&S390_lowcore.cpu_data); | 802 | print_cpu_info(&S390_lowcore.cpu_data); |
803 | 803 | ||
804 | for_each_cpu(i) { | 804 | for_each_possible_cpu(i) { |
805 | lowcore_ptr[i] = (struct _lowcore *) | 805 | lowcore_ptr[i] = (struct _lowcore *) |
806 | __get_free_pages(GFP_KERNEL|GFP_DMA, | 806 | __get_free_pages(GFP_KERNEL|GFP_DMA, |
807 | sizeof(void*) == 8 ? 1 : 0); | 807 | sizeof(void*) == 8 ? 1 : 0); |
@@ -831,7 +831,7 @@ void __init smp_prepare_cpus(unsigned int max_cpus) | |||
831 | #endif | 831 | #endif |
832 | set_prefix((u32)(unsigned long) lowcore_ptr[smp_processor_id()]); | 832 | set_prefix((u32)(unsigned long) lowcore_ptr[smp_processor_id()]); |
833 | 833 | ||
834 | for_each_cpu(cpu) | 834 | for_each_possible_cpu(cpu) |
835 | if (cpu != smp_processor_id()) | 835 | if (cpu != smp_processor_id()) |
836 | smp_create_idle(cpu); | 836 | smp_create_idle(cpu); |
837 | } | 837 | } |
@@ -868,7 +868,7 @@ static int __init topology_init(void) | |||
868 | int cpu; | 868 | int cpu; |
869 | int ret; | 869 | int ret; |
870 | 870 | ||
871 | for_each_cpu(cpu) { | 871 | for_each_possible_cpu(cpu) { |
872 | ret = register_cpu(&per_cpu(cpu_devices, cpu), cpu, NULL); | 872 | ret = register_cpu(&per_cpu(cpu_devices, cpu), cpu, NULL); |
873 | if (ret) | 873 | if (ret) |
874 | printk(KERN_WARNING "topology_init: register_cpu %d " | 874 | printk(KERN_WARNING "topology_init: register_cpu %d " |
diff --git a/include/asm-s390/percpu.h b/include/asm-s390/percpu.h index e10ed87094f0..436d216601e5 100644 --- a/include/asm-s390/percpu.h +++ b/include/asm-s390/percpu.h | |||
@@ -46,7 +46,7 @@ extern unsigned long __per_cpu_offset[NR_CPUS]; | |||
46 | #define percpu_modcopy(pcpudst, src, size) \ | 46 | #define percpu_modcopy(pcpudst, src, size) \ |
47 | do { \ | 47 | do { \ |
48 | unsigned int __i; \ | 48 | unsigned int __i; \ |
49 | for_each_cpu(__i) \ | 49 | for_each_possible_cpu(__i) \ |
50 | memcpy((pcpudst)+__per_cpu_offset[__i], \ | 50 | memcpy((pcpudst)+__per_cpu_offset[__i], \ |
51 | (src), (size)); \ | 51 | (src), (size)); \ |
52 | } while (0) | 52 | } while (0) |