sched/init: Initialize the idle thread local storage by tls_init_info

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
This commit is contained in:
Xiang Xiao 2022-06-05 22:18:05 +08:00 committed by Masayuki Ishikawa
parent 2707ba58d2
commit 8543df7e4c

View file

@ -43,7 +43,6 @@
#include <nuttx/binfmt/binfmt.h>
#include <nuttx/drivers/drivers.h>
#include <nuttx/init.h>
#include <nuttx/tls.h>
#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.