From d5905d59637cf41fb31d1f293c18f0d7365b1449 Mon Sep 17 00:00:00 2001 From: Xiang Xiao Date: Mon, 23 Mar 2020 19:43:23 +0800 Subject: [PATCH] arch/arm: Fix linker error: undefined reference to `g_intstackalloc' when CONFIG_ARCH_INTERRUPTSTACK, CONFIG_SMP and CONFIG_STACK_COLORATION are true --- arch/arm/src/common/up_checkstack.c | 6 ++++++ arch/arm/src/common/up_initialize.c | 4 ++++ 2 files changed, 10 insertions(+) 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);