diff --git a/arch/arm/core/aarch32/swap_helper.S b/arch/arm/core/aarch32/swap_helper.S index 3a0372df9cb..1b0dabf7947 100644 --- a/arch/arm/core/aarch32/swap_helper.S +++ b/arch/arm/core/aarch32/swap_helper.S @@ -322,12 +322,6 @@ _thread_irq_disabled: #error Unknown ARM architecture #endif /* CONFIG_ARMV6_M_ARMV8_M_BASELINE */ -#ifdef CONFIG_BUILTIN_STACK_GUARD - /* clear stack pointer limit before setting the PSP */ - mov r0, #0 - msr PSPLIM, r0 -#endif /* CONFIG_BUILTIN_STACK_GUARD */ - #if defined(CONFIG_CPU_CORTEX_M) msr PSP, ip #endif diff --git a/arch/arm/core/aarch32/thread.c b/arch/arm/core/aarch32/thread.c index c47ff767b18..6c8547ef60d 100644 --- a/arch/arm/core/aarch32/thread.c +++ b/arch/arm/core/aarch32/thread.c @@ -205,6 +205,7 @@ void configure_builtin_stack_guard(struct k_thread *thread) * User threads executing in user mode do not require a stack * limit protection. */ + __set_PSPLIM(0); return; } u32_t guard_start = thread->arch.priv_stack_start ?