Commit bb313355 authored by Daniel Leung's avatar Daniel Leung Committed by Anas Nashif
Browse files

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: default avatarDaniel Leung <daniel.leung@intel.com>
parent 55ee97c7
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -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 -