diff options
| author | Heiko Carstens <heiko.carstens@de.ibm.com> | 2008-02-05 10:50:39 -0500 |
|---|---|---|
| committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2008-02-05 10:50:55 -0500 |
| commit | 37c5f719e71882b759fa8acbdd11d5ca3a7965bb (patch) | |
| tree | 7874e2bd494a8b0c7c77b6b6df8b6bff7e617e5a | |
| parent | a817a61f85c75181bde6c3d83ae11a24b089dd6a (diff) | |
[S390] Fix smp_call_function_mask semantics.
Make sure func isn't called on the local cpu just like on all other
architectures that implement this function.
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
| -rw-r--r-- | arch/s390/kernel/smp.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/arch/s390/kernel/smp.c b/arch/s390/kernel/smp.c index aa37fa154512..f5046fd4930f 100644 --- a/arch/s390/kernel/smp.c +++ b/arch/s390/kernel/smp.c | |||
| @@ -225,12 +225,11 @@ EXPORT_SYMBOL(smp_call_function_single); | |||
| 225 | * You must not call this function with disabled interrupts or from a | 225 | * You must not call this function with disabled interrupts or from a |
| 226 | * hardware interrupt handler or from a bottom half handler. | 226 | * hardware interrupt handler or from a bottom half handler. |
| 227 | */ | 227 | */ |
| 228 | int | 228 | int smp_call_function_mask(cpumask_t mask, void (*func)(void *), void *info, |
| 229 | smp_call_function_mask(cpumask_t mask, | 229 | int wait) |
| 230 | void (*func)(void *), void *info, | ||
| 231 | int wait) | ||
| 232 | { | 230 | { |
| 233 | preempt_disable(); | 231 | preempt_disable(); |
| 232 | cpu_clear(smp_processor_id(), mask); | ||
| 234 | __smp_call_function_map(func, info, 0, wait, mask); | 233 | __smp_call_function_map(func, info, 0, wait, mask); |
| 235 | preempt_enable(); | 234 | preempt_enable(); |
| 236 | return 0; | 235 | return 0; |
