risc-v/k210: Fix SMP interrupt stack size calculation
manual cherry-pick from #3636
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
diff --git a/arch/risc-v/src/k210/k210_irq.c b/arch/risc-v/src/k210/k210_irq.c
index 84767d8..1bf9f05 100644
--- a/arch/risc-v/src/k210/k210_irq.c
+++ b/arch/risc-v/src/k210/k210_irq.c
@@ -81,7 +81,12 @@
/* Colorize the interrupt stack for debug purposes */
#if defined(CONFIG_STACK_COLORATION) && CONFIG_ARCH_INTERRUPTSTACK > 15
- size_t intstack_size = (CONFIG_ARCH_INTERRUPTSTACK & ~15);
+ size_t intstack_size = 0;
+#ifndef CONFIG_SMP
+ intstack_size = (CONFIG_ARCH_INTERRUPTSTACK & ~15);
+#else
+ intstack_size = ((CONFIG_ARCH_INTERRUPTSTACK * CONFIG_SMP_NCPUS) & ~15);
+#endif
riscv_stack_color((FAR void *)((uintptr_t)&g_intstackbase - intstack_size),
intstack_size);
#endif