On Thu, May 10, 2018 at 01:58:29PM +0900, ��ȣ�� wrote: > Hi, all. > > I'm reading kernel/smp.c code and I found comments on smp_call_function() > and smp_call_function_[single/many] > saying that these functions are cannot be called in interrupt disabled > context or irq/bottom half handlers. > > I understand that there is a potential deadlock issue when caller CPU of > the functions is waiting for the completion of the callback of other CPUs. > But I was wondering if this is the case even when the caller CPU doesn't > wait for the completion (wait == 0).
IIRC yes, because csd_lock(). You can however use smp_call_function_single_async() with your own csd. Be very careful though, it is very easy to construct deadlocks.

