riscv: initialize privileged stack during thread init
This adds the bits to initialize the privileged stack when a thread is transitioning to user mode. This prevents information leaking if the stack is reused, and also aids in calculating stack space usage during system calls. Signed-off-by: Daniel Leung <daniel.leung@intel.com>
This commit is contained in:
parent
55ee97c7d2
commit
bb313355f3
1 changed files with 6 additions and 0 deletions
|
@ -144,6 +144,12 @@ FUNC_NORETURN void arch_user_mode_enter(k_thread_entry_t user_entry,
|
|||
K_KERNEL_STACK_RESERVED +
|
||||
CONFIG_PRIVILEGED_STACK_SIZE);
|
||||
|
||||
#ifdef CONFIG_INIT_STACKS
|
||||
/* Initialize the privileged stack */
|
||||
(void)memset((void *)_current->arch.priv_stack_start, 0xaa,
|
||||
Z_STACK_PTR_ALIGN(K_KERNEL_STACK_RESERVED + CONFIG_PRIVILEGED_STACK_SIZE));
|
||||
#endif /* CONFIG_INIT_STACKS */
|
||||
|
||||
top_of_user_stack = Z_STACK_PTR_ALIGN(
|
||||
_current->stack_info.start +
|
||||
_current->stack_info.size -
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue