smpcall: we directly call the function to handle local smpcall
reason: some arch do not support issuing interrupts to the local CPU. This commit fixes the regression from https://github.com/apache/nuttx/pull/14663 Signed-off-by: hujun5 <hujun5@xiaomi.com>
This commit is contained in:
parent
400f2960e6
commit
7ec1894267
1 changed files with 16 additions and 0 deletions
|
@ -314,6 +314,22 @@ int nxsched_smp_call_async(cpu_set_t cpuset,
|
|||
sched_lock();
|
||||
}
|
||||
|
||||
if (CPU_ISSET(this_cpu(), &cpuset))
|
||||
{
|
||||
ret = data->func(data->arg);
|
||||
if (data->cookie != NULL)
|
||||
{
|
||||
data->cookie->error = ret;
|
||||
nxsem_post(&data->cookie->sem);
|
||||
if (ret < 0)
|
||||
{
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
|
||||
CPU_CLR(this_cpu(), &cpuset);
|
||||
}
|
||||
|
||||
cpucnt = CPU_COUNT(&cpuset);
|
||||
if (cpucnt == 0)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue