diff --git a/arch/arm/src/armv7-a/arm_smpcall.c b/arch/arm/src/armv7-a/arm_smpcall.c index d83b9e68350..220359fc0a7 100644 --- a/arch/arm/src/armv7-a/arm_smpcall.c +++ b/arch/arm/src/armv7-a/arm_smpcall.c @@ -68,16 +68,7 @@ int arm_smp_sched_handler(int irq, void *context, void *arg) { - struct tcb_s *tcb; - int cpu = this_cpu(); - - tcb = current_task(cpu); - nxsched_suspend_scheduler(tcb); - nxsched_process_delivered(cpu); - tcb = current_task(cpu); - nxsched_resume_scheduler(tcb); - - UNUSED(tcb); + nxsched_process_delivered(this_cpu()); return OK; } diff --git a/arch/arm/src/armv7-r/arm_smpcall.c b/arch/arm/src/armv7-r/arm_smpcall.c index 52844957a91..5b963f7c260 100644 --- a/arch/arm/src/armv7-r/arm_smpcall.c +++ b/arch/arm/src/armv7-r/arm_smpcall.c @@ -68,16 +68,7 @@ int arm_smp_sched_handler(int irq, void *context, void *arg) { - struct tcb_s *tcb; - int cpu = this_cpu(); - - tcb = current_task(cpu); - nxsched_suspend_scheduler(tcb); - nxsched_process_delivered(cpu); - tcb = current_task(cpu); - nxsched_resume_scheduler(tcb); - - UNUSED(tcb); + nxsched_process_delivered(this_cpu()); return OK; } diff --git a/arch/arm64/src/common/arm64_smpcall.c b/arch/arm64/src/common/arm64_smpcall.c index 0b42ba5ad4c..77f649c59c9 100644 --- a/arch/arm64/src/common/arm64_smpcall.c +++ b/arch/arm64/src/common/arm64_smpcall.c @@ -67,17 +67,7 @@ int arm64_smp_sched_handler(int irq, void *context, void *arg) { - struct tcb_s *tcb; - int cpu = this_cpu(); - - tcb = current_task(cpu); - nxsched_suspend_scheduler(tcb); - nxsched_process_delivered(cpu); - tcb = current_task(cpu); - nxsched_resume_scheduler(tcb); - - UNUSED(tcb); - + nxsched_process_delivered(this_cpu()); return OK; } diff --git a/arch/x86_64/src/intel64/intel64_smpcall.c b/arch/x86_64/src/intel64/intel64_smpcall.c index 8e4413b0129..a0d78a3dbdb 100644 --- a/arch/x86_64/src/intel64/intel64_smpcall.c +++ b/arch/x86_64/src/intel64/intel64_smpcall.c @@ -94,11 +94,8 @@ int x86_64_smp_sched_handler(int irq, void *c, void *arg) struct tcb_s *tcb; int cpu = this_cpu(); - tcb = current_task(cpu); - nxsched_suspend_scheduler(tcb); nxsched_process_delivered(cpu); tcb = current_task(cpu); - nxsched_resume_scheduler(tcb); x86_64_restorestate(tcb->xcp.regs); return OK;