From 202b8141a6c2bd5c1280ec0fdab8fed5f2cf9773 Mon Sep 17 00:00:00 2001 From: Xiang Xiao Date: Mon, 31 Jan 2022 12:28:11 +0800 Subject: [PATCH] arch/sim: Adjust the stack size for up_use_stack too Signed-off-by: Xiang Xiao --- arch/sim/src/sim/up_usestack.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/arch/sim/src/sim/up_usestack.c b/arch/sim/src/sim/up_usestack.c index 55a833a5b10..61eb5ef41c3 100644 --- a/arch/sim/src/sim/up_usestack.c +++ b/arch/sim/src/sim/up_usestack.c @@ -84,6 +84,7 @@ int up_use_stack(FAR struct tcb_s *tcb, FAR void *stack, size_t stack_size) { +#if CONFIG_SIM_STACKSIZE_ADJUSTMENT == 0 size_t adj_stack_size; #ifdef CONFIG_TLS_ALIGNED @@ -101,7 +102,7 @@ int up_use_stack(FAR struct tcb_s *tcb, FAR void *stack, size_t stack_size) tcb->adj_stack_size = adj_stack_size; tcb->stack_alloc_ptr = stack; - tcb->stack_base_ptr = tcb->stack_alloc_ptr; + tcb->stack_base_ptr = tcb->stack_alloc_ptr; #if defined(CONFIG_STACK_COLORATION) /* If stack debug is enabled, then fill the stack with a @@ -113,4 +114,12 @@ int up_use_stack(FAR struct tcb_s *tcb, FAR void *stack, size_t stack_size) #endif return OK; +#else + /* Ignore the stack argument and allocate a new stack instead + * since it's impossible to extend a preallocated memory in place. + */ + + return up_create_stack(tcb, up_tls_size() + stack_size, + tcb->flags & TCB_FLAG_TTYPE_MASK); +#endif }