diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2010-12-03 05:42:58 -0500 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2010-12-20 10:08:26 -0500 |
commit | bbc3d14e9aca023bb98e580aa1c9350af8effdb1 (patch) | |
tree | d4b70bc67c04d1cbe05948a9368f916198237dbc /arch/arm/mach-realview | |
parent | 28e18293cf0f8d23a0950d7b1d2212d11af494dc (diff) |
ARM: SMP: move CPU number sanity checks to smp_init_cpus()
Ensure that the number of CPUs is sanity checked before setting
the number of possible CPUs. This avoids any chance of overflowing
the cpu_possible bitmap.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mach-realview')
-rw-r--r-- | arch/arm/mach-realview/platsmp.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/arch/arm/mach-realview/platsmp.c b/arch/arm/mach-realview/platsmp.c index af3d9093390b..108e92f9746b 100644 --- a/arch/arm/mach-realview/platsmp.c +++ b/arch/arm/mach-realview/platsmp.c | |||
@@ -160,16 +160,6 @@ void __init smp_init_cpus(void) | |||
160 | { | 160 | { |
161 | unsigned int i, ncores = get_core_count(); | 161 | unsigned int i, ncores = get_core_count(); |
162 | 162 | ||
163 | for (i = 0; i < ncores; i++) | ||
164 | set_cpu_possible(i, true); | ||
165 | } | ||
166 | |||
167 | void __init smp_prepare_cpus(unsigned int max_cpus) | ||
168 | { | ||
169 | unsigned int ncores = get_core_count(); | ||
170 | unsigned int cpu = smp_processor_id(); | ||
171 | int i; | ||
172 | |||
173 | /* sanity check */ | 163 | /* sanity check */ |
174 | if (ncores == 0) { | 164 | if (ncores == 0) { |
175 | printk(KERN_ERR | 165 | printk(KERN_ERR |
@@ -186,6 +176,16 @@ void __init smp_prepare_cpus(unsigned int max_cpus) | |||
186 | ncores = NR_CPUS; | 176 | ncores = NR_CPUS; |
187 | } | 177 | } |
188 | 178 | ||
179 | for (i = 0; i < ncores; i++) | ||
180 | set_cpu_possible(i, true); | ||
181 | } | ||
182 | |||
183 | void __init smp_prepare_cpus(unsigned int max_cpus) | ||
184 | { | ||
185 | unsigned int ncores = num_possible_cpus(); | ||
186 | unsigned int cpu = smp_processor_id(); | ||
187 | int i; | ||
188 | |||
189 | smp_store_cpu_info(cpu); | 189 | smp_store_cpu_info(cpu); |
190 | 190 | ||
191 | /* | 191 | /* |