From b7216d54ff61fe264f52422ab4e7725ffb8e0a4b Mon Sep 17 00:00:00 2001 From: zhangyuan21 Date: Wed, 12 Jul 2023 00:40:00 +0800 Subject: [PATCH] arm64: Use the correct cpu id for fpu idle task init Signed-off-by: zhangyuan21 --- arch/arm64/src/common/arm64_fpu.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/arch/arm64/src/common/arm64_fpu.c b/arch/arm64/src/common/arm64_fpu.c index 87b8e48c922..8e6935a915d 100644 --- a/arch/arm64/src/common/arm64_fpu.c +++ b/arch/arm64/src/common/arm64_fpu.c @@ -270,11 +270,16 @@ void arm64_init_fpu(struct tcb_s *tcb) { if (tcb->pid < CONFIG_SMP_NCPUS) { - memset(&g_cpu_fpu_ctx[this_cpu()], 0, +#ifdef CONFIG_SMP + int cpu = tcb->cpu; +#else + int cpu = 0; +#endif + memset(&g_cpu_fpu_ctx[cpu], 0, sizeof(struct arm64_cpu_fpu_context)); - g_cpu_fpu_ctx[this_cpu()].idle_thread = tcb; + g_cpu_fpu_ctx[cpu].idle_thread = tcb; - tcb->xcp.fpu_regs = (uint64_t *)&g_idle_thread_fpu[this_cpu()]; + tcb->xcp.fpu_regs = (uint64_t *)&g_idle_thread_fpu[cpu]; } memset(tcb->xcp.fpu_regs, 0, sizeof(struct fpu_reg));