x86_64: we should call x86_64_restorestate/x86_64_savestate

reason:
In x86_64, g_current_regs is still used for context switching.

This commit fixes the regression from https://github.com/apache/nuttx/pull/13616

Signed-off-by: hujun5 <hujun5@xiaomi.com>
This commit is contained in:
hujun5 2024-09-30 11:11:01 +08:00 committed by Xiang Xiao
parent f5a449487c
commit fbed4ece2c

View File

@ -286,9 +286,16 @@ int up_pause_handler(int irq, void *c, void *arg)
int up_pause_async_handler(int irq, void *c, void *arg)
{
struct tcb_s *tcb;
int cpu = this_cpu();
tcb = current_task(cpu);
nxsched_suspend_scheduler(tcb);
x86_64_savestate(tcb->xcp.regs);
nxsched_process_delivered(cpu);
tcb = current_task(cpu);
nxsched_resume_scheduler(tcb);
x86_64_restorestate(tcb->xcp.regs);
return OK;
}