diff --git a/arch/arm/src/common/up_checkstack.c b/arch/arm/src/common/up_checkstack.c index fe75ed99cd..12ce6f797f 100644 --- a/arch/arm/src/common/up_checkstack.c +++ b/arch/arm/src/common/up_checkstack.c @@ -211,9 +211,15 @@ ssize_t up_check_stack_remain(void) #if CONFIG_ARCH_INTERRUPTSTACK > 3 size_t up_check_intstack(void) { +#ifdef CONFIG_SMP + return do_stackcheck(up_intstack_base(), + (CONFIG_ARCH_INTERRUPTSTACK & ~3), + true); +#else return do_stackcheck((uintptr_t)&g_intstackalloc, (CONFIG_ARCH_INTERRUPTSTACK & ~3), true); +#endif } size_t up_check_intstack_remain(void) diff --git a/arch/arm/src/common/up_initialize.c b/arch/arm/src/common/up_initialize.c index 7e802f4b61..7389b324ff 100644 --- a/arch/arm/src/common/up_initialize.c +++ b/arch/arm/src/common/up_initialize.c @@ -75,7 +75,11 @@ #if defined(CONFIG_STACK_COLORATION) && CONFIG_ARCH_INTERRUPTSTACK > 3 static inline void up_color_intstack(void) { +#ifdef CONFIG_SMP + uint32_t *ptr = (uint32_t *)up_intstack_base(); +#else uint32_t *ptr = (uint32_t *)&g_intstackalloc; +#endif ssize_t size; for (size = (CONFIG_ARCH_INTERRUPTSTACK & ~3);