From c7a0cdd1a53fc9d98f733778a5dc96b1bd541e37 Mon Sep 17 00:00:00 2001 From: Daniel Leung Date: Thu, 12 Nov 2020 15:51:08 -0800 Subject: [PATCH] shell: kernel: fix interrupt stack size calculation on SMP When calculating the size of unused interrupt stacks on SMP, the "unused" variable is not cleared between CPUs. So this value keeps incrementing and does not reflect actual unused size for CPUs other than the first one. So clear the "unused" variable for each CPU. Signed-off-by: Daniel Leung --- subsys/shell/modules/kernel_service.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/subsys/shell/modules/kernel_service.c b/subsys/shell/modules/kernel_service.c index db434ebfc9d..135de597852 100644 --- a/subsys/shell/modules/kernel_service.c +++ b/subsys/shell/modules/kernel_service.c @@ -180,7 +180,7 @@ static int cmd_kernel_stacks(const struct shell *shell, size_t argc, char **argv) { uint8_t *buf; - size_t size, unused = 0; + size_t size, unused; ARG_UNUSED(argc); ARG_UNUSED(argv); @@ -194,6 +194,7 @@ static int cmd_kernel_stacks(const struct shell *shell, buf = Z_KERNEL_STACK_BUFFER(z_interrupt_stacks[i]); size = K_KERNEL_STACK_SIZEOF(z_interrupt_stacks[i]); + unused = 0; for (size_t i = 0; i < size; i++) { if (buf[i] == 0xAAU) { unused++;