diff options
Diffstat (limited to 'kernel/smp.c')
-rw-r--r-- | kernel/smp.c | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/kernel/smp.c b/kernel/smp.c index b76763189752..06d574e42c72 100644 --- a/kernel/smp.c +++ b/kernel/smp.c | |||
@@ -238,15 +238,22 @@ int smp_call_function_single(int cpu, smp_call_func_t func, void *info, | |||
238 | EXPORT_SYMBOL(smp_call_function_single); | 238 | EXPORT_SYMBOL(smp_call_function_single); |
239 | 239 | ||
240 | /** | 240 | /** |
241 | * __smp_call_function_single(): Run a function on a specific CPU | 241 | * smp_call_function_single_async(): Run an asynchronous function on a |
242 | * specific CPU. | ||
242 | * @cpu: The CPU to run on. | 243 | * @cpu: The CPU to run on. |
243 | * @csd: Pre-allocated and setup data structure | 244 | * @csd: Pre-allocated and setup data structure |
244 | * | 245 | * |
245 | * Like smp_call_function_single(), but allow caller to pass in a | 246 | * Like smp_call_function_single(), but the call is asynchonous and |
246 | * pre-allocated data structure. Useful for embedding @data inside | 247 | * can thus be done from contexts with disabled interrupts. |
247 | * other structures, for instance. | 248 | * |
249 | * The caller passes his own pre-allocated data structure | ||
250 | * (ie: embedded in an object) and is responsible for synchronizing it | ||
251 | * such that the IPIs performed on the @csd are strictly serialized. | ||
252 | * | ||
253 | * NOTE: Be careful, there is unfortunately no current debugging facility to | ||
254 | * validate the correctness of this serialization. | ||
248 | */ | 255 | */ |
249 | int __smp_call_function_single(int cpu, struct call_single_data *csd) | 256 | int smp_call_function_single_async(int cpu, struct call_single_data *csd) |
250 | { | 257 | { |
251 | int err = 0; | 258 | int err = 0; |
252 | 259 | ||
@@ -256,7 +263,7 @@ int __smp_call_function_single(int cpu, struct call_single_data *csd) | |||
256 | 263 | ||
257 | return err; | 264 | return err; |
258 | } | 265 | } |
259 | EXPORT_SYMBOL_GPL(__smp_call_function_single); | 266 | EXPORT_SYMBOL_GPL(smp_call_function_single_async); |
260 | 267 | ||
261 | /* | 268 | /* |
262 | * smp_call_function_any - Run a function on any of the given cpus | 269 | * smp_call_function_any - Run a function on any of the given cpus |