diff options
| author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-08-03 18:16:33 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-08-03 18:16:33 -0400 |
| commit | 22da317629bad23816f3fa26d657fb46e7af21c7 (patch) | |
| tree | ea9e97afd3aca46c16b77468ef91e5e39d36ed7f /arch/powerpc/kernel/smp.c | |
| parent | 3e847423bf029c2170692c75580a856debed617b (diff) | |
| parent | 67439b76f29cb278bb3412fc873b980fc65110c9 (diff) | |
Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc
* 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc:
[POWERPC] Fixes for the SLB shadow buffer code
[POWERPC] Fix a compile warning in powermac/feature.c
[POWERPC] Fix a compile warning in pci_32.c
[POWERPC] Fix parse_drconf_memory() for 64-bit start addresses
[POWERPC] Fix num_cpus calculation in smp_call_function_map()
[POWERPC] ps3: Fix section mismatch in ps3/setup.c
[POWERPC] spufs: Fix affinity after introduction of node_allowed() calls
[POWERPC] Fix special PTE code for secondary hash bucket
[POWERPC] Expand RPN field to 34 bits when using 64k pages
Diffstat (limited to 'arch/powerpc/kernel/smp.c')
| -rw-r--r-- | arch/powerpc/kernel/smp.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c index 087c92f2a3eb..1ea43160f543 100644 --- a/arch/powerpc/kernel/smp.c +++ b/arch/powerpc/kernel/smp.c | |||
| @@ -212,11 +212,6 @@ int smp_call_function_map(void (*func) (void *info), void *info, int nonatomic, | |||
| 212 | atomic_set(&data.finished, 0); | 212 | atomic_set(&data.finished, 0); |
| 213 | 213 | ||
| 214 | spin_lock(&call_lock); | 214 | spin_lock(&call_lock); |
| 215 | /* Must grab online cpu count with preempt disabled, otherwise | ||
| 216 | * it can change. */ | ||
| 217 | num_cpus = num_online_cpus() - 1; | ||
| 218 | if (!num_cpus) | ||
| 219 | goto done; | ||
| 220 | 215 | ||
| 221 | /* remove 'self' from the map */ | 216 | /* remove 'self' from the map */ |
| 222 | if (cpu_isset(smp_processor_id(), map)) | 217 | if (cpu_isset(smp_processor_id(), map)) |
| @@ -224,7 +219,9 @@ int smp_call_function_map(void (*func) (void *info), void *info, int nonatomic, | |||
| 224 | 219 | ||
| 225 | /* sanity check the map, remove any non-online processors. */ | 220 | /* sanity check the map, remove any non-online processors. */ |
| 226 | cpus_and(map, map, cpu_online_map); | 221 | cpus_and(map, map, cpu_online_map); |
| 227 | if (cpus_empty(map)) | 222 | |
| 223 | num_cpus = cpus_weight(map); | ||
| 224 | if (!num_cpus) | ||
| 228 | goto done; | 225 | goto done; |
| 229 | 226 | ||
| 230 | call_data = &data; | 227 | call_data = &data; |
