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:
hujun5 2024-11-06 14:12:14 +08:00 committed by Masayuki Ishikawa
parent 400f2960e6
commit 7ec1894267

View file

@ -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)
{