From: Andrew Morton It's supposed to return -EBUSY when asked to execute the callback on the current CPU. Cc: Andi Kleen Cc: Heiko Carstens Signed-off-by: Andrew Morton --- arch/x86_64/kernel/smp.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff -puN arch/x86_64/kernel/smp.c~x86_64-fix-smp_call_function_single-return-value arch/x86_64/kernel/smp.c --- a/arch/x86_64/kernel/smp.c~x86_64-fix-smp_call_function_single-return-value +++ a/arch/x86_64/kernel/smp.c @@ -363,7 +363,7 @@ __smp_call_function_single(int cpu, void * @nonatomic: Currently unused. * @wait: If true, wait until function has completed on other CPUs. * - * Retrurns 0 on success, else a negative status code. + * Returns 0 on success, else a negative status code. * * Does not return until the remote CPU is nearly ready to execute * or is or has executed. @@ -376,7 +376,7 @@ int smp_call_function_single (int cpu, v int me = get_cpu(); if (cpu == me) { put_cpu(); - return 0; + return -EBUSY; } /* Can deadlock when called with interrupts disabled */ _