diff --git a/sched/init/nx_start.c b/sched/init/nx_start.c index 9f5b04f0483..497bf298acf 100644 --- a/sched/init/nx_start.c +++ b/sched/init/nx_start.c @@ -43,7 +43,6 @@ #include #include #include -#include #include "sched/sched.h" #include "signal/signal.h" @@ -54,6 +53,7 @@ #include "irq/irq.h" #include "group/group.h" #include "init/init.h" +#include "tls/tls.h" /**************************************************************************** * Pre-processor Definitions @@ -517,7 +517,6 @@ void nx_start(void) for (i = 0; i < CONFIG_SMP_NCPUS; i++) { - FAR struct tls_info_s *info; int hashndx; /* Assign the process ID(s) of ZERO to the idle task(s) */ @@ -546,13 +545,9 @@ void nx_start(void) up_initial_state(&g_idletcb[i].cmn); - /* Initialize the thread local storage - * Note: Don't copy tdata and tss for idle task to improve footprint - */ + /* Initialize the thread local storage */ - info = up_stack_frame(&g_idletcb[i].cmn, sizeof(struct tls_info_s)); - DEBUGASSERT(info == g_idletcb[i].cmn.stack_alloc_ptr); - info->tl_task = g_idletcb[i].cmn.group->tg_info; + tls_init_info(&g_idletcb[i].cmn); /* Complete initialization of the IDLE group. Suppress retention * of child status in the IDLE group.