From db243064354ae958bcdea8a65d896237e841f028 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 18 Dec 2018 17:45:46 -0600 Subject: [PATCH] arch/assertion logic: Fix additional places where the test for an IDLE task is incorrect. It is not invalid in all configurations to check for PID==0. However, the logic fixed in these places lackes sufficient intelligence to find the right stack for the CPU IDLE thread and could still show the wrong stack. --- arch/arm/src/arm/up_assert.c | 2 +- arch/arm/src/armv6-m/up_assert.c | 2 +- arch/arm/src/armv7-a/arm_assert.c | 2 +- arch/arm/src/armv7-m/up_assert.c | 2 +- arch/arm/src/armv7-r/arm_assert.c | 2 +- arch/avr/src/avr/up_dumpstate.c | 2 +- arch/avr/src/avr32/up_dumpstate.c | 2 +- arch/hc/src/m9s12/m9s12_assert.c | 2 +- arch/mips/src/mips32/up_dumpstate.c | 2 +- arch/misoc/src/lm32/lm32_dumpstate.c | 2 +- arch/or1k/src/common/up_assert.c | 2 +- arch/renesas/src/m16c/m16c_dumpstate.c | 2 +- arch/renesas/src/sh1/sh1_dumpstate.c | 2 +- arch/risc-v/src/rv32im/up_dumpstate.c | 2 +- arch/x86/src/common/up_assert.c | 2 +- arch/xtensa/src/common/xtensa_dumpstate.c | 2 +- 16 files changed, 16 insertions(+), 16 deletions(-) diff --git a/arch/arm/src/arm/up_assert.c b/arch/arm/src/arm/up_assert.c index 31dab564990..a8b9fb194f8 100644 --- a/arch/arm/src/arm/up_assert.c +++ b/arch/arm/src/arm/up_assert.c @@ -205,7 +205,7 @@ static void up_dumpstate(void) /* Get the limits on the user stack memory */ - if (rtcb->pid == 0) + if (rtcb->flink == NULL) { ustackbase = g_idle_topstack - 4; ustacksize = CONFIG_IDLETHREAD_STACKSIZE; diff --git a/arch/arm/src/armv6-m/up_assert.c b/arch/arm/src/armv6-m/up_assert.c index 0f6b21e8be2..6df85fd3eb7 100644 --- a/arch/arm/src/armv6-m/up_assert.c +++ b/arch/arm/src/armv6-m/up_assert.c @@ -242,7 +242,7 @@ static void up_dumpstate(void) /* Get the limits on the user stack memory */ - if (rtcb->pid == 0) + if (rtcb->flink == NULL) { ustackbase = g_idle_topstack - 4; ustacksize = CONFIG_IDLETHREAD_STACKSIZE; diff --git a/arch/arm/src/armv7-a/arm_assert.c b/arch/arm/src/armv7-a/arm_assert.c index 05c247d6f75..2206f849aef 100644 --- a/arch/arm/src/armv7-a/arm_assert.c +++ b/arch/arm/src/armv7-a/arm_assert.c @@ -246,7 +246,7 @@ static void up_dumpstate(void) /* Get the limits on the user stack memory */ - if (rtcb->pid == 0) + if (rtcb->flink == NULL) { ustackbase = g_idle_topstack - 4; ustacksize = CONFIG_IDLETHREAD_STACKSIZE; diff --git a/arch/arm/src/armv7-m/up_assert.c b/arch/arm/src/armv7-m/up_assert.c index bc4e55b4db9..317cb9e9158 100644 --- a/arch/arm/src/armv7-m/up_assert.c +++ b/arch/arm/src/armv7-m/up_assert.c @@ -250,7 +250,7 @@ static void up_dumpstate(void) /* Get the limits on the user stack memory */ - if (rtcb->pid == 0) + if (rtcb->flink == NULL) { ustackbase = g_idle_topstack - 4; ustacksize = CONFIG_IDLETHREAD_STACKSIZE; diff --git a/arch/arm/src/armv7-r/arm_assert.c b/arch/arm/src/armv7-r/arm_assert.c index 59a1330fe78..9bf41fa5b30 100644 --- a/arch/arm/src/armv7-r/arm_assert.c +++ b/arch/arm/src/armv7-r/arm_assert.c @@ -242,7 +242,7 @@ static void up_dumpstate(void) /* Get the limits on the user stack memory */ - if (rtcb->pid == 0) + if (rtcb->flink == NULL) { ustackbase = g_idle_topstack - 4; ustacksize = CONFIG_IDLETHREAD_STACKSIZE; diff --git a/arch/avr/src/avr/up_dumpstate.c b/arch/avr/src/avr/up_dumpstate.c index effb20d4210..126c6a0d8f3 100644 --- a/arch/avr/src/avr/up_dumpstate.c +++ b/arch/avr/src/avr/up_dumpstate.c @@ -175,7 +175,7 @@ void up_dumpstate(void) /* Get the limits on the user stack memory */ - if (rtcb->pid == 0) + if (rtcb->flink == NULL) { ustackbase = g_idle_topstack - 1; ustacksize = CONFIG_IDLETHREAD_STACKSIZE; diff --git a/arch/avr/src/avr32/up_dumpstate.c b/arch/avr/src/avr32/up_dumpstate.c index 5a0696f6681..08463d11ae7 100644 --- a/arch/avr/src/avr32/up_dumpstate.c +++ b/arch/avr/src/avr32/up_dumpstate.c @@ -141,7 +141,7 @@ void up_dumpstate(void) /* Get the limits on the user stack memory */ - if (rtcb->pid == 0) + if (rtcb->flink == NULL) { ustackbase = g_idle_topstack - 4; ustacksize = CONFIG_IDLETHREAD_STACKSIZE; diff --git a/arch/hc/src/m9s12/m9s12_assert.c b/arch/hc/src/m9s12/m9s12_assert.c index d86d860408c..c248233ed6c 100644 --- a/arch/hc/src/m9s12/m9s12_assert.c +++ b/arch/hc/src/m9s12/m9s12_assert.c @@ -199,7 +199,7 @@ static void up_dumpstate(void) /* Get the limits on the user stack memory */ - if (rtcb->pid == 0) + if (rtcb->flink == NULL) { ustackbase = g_idle_topstack - 4; ustacksize = CONFIG_IDLETHREAD_STACKSIZE; diff --git a/arch/mips/src/mips32/up_dumpstate.c b/arch/mips/src/mips32/up_dumpstate.c index a74da499315..3ba9091ccba 100644 --- a/arch/mips/src/mips32/up_dumpstate.c +++ b/arch/mips/src/mips32/up_dumpstate.c @@ -154,7 +154,7 @@ void up_dumpstate(void) /* Get the limits on the user stack memory */ - if (rtcb->pid == 0) + if (rtcb->flink == NULL) { ustackbase = g_idle_topstack - 4; ustacksize = CONFIG_IDLETHREAD_STACKSIZE; diff --git a/arch/misoc/src/lm32/lm32_dumpstate.c b/arch/misoc/src/lm32/lm32_dumpstate.c index 4b9bb977bae..12923c97c2e 100644 --- a/arch/misoc/src/lm32/lm32_dumpstate.c +++ b/arch/misoc/src/lm32/lm32_dumpstate.c @@ -150,7 +150,7 @@ void lm32_dumpstate(void) /* Get the limits on the user stack memory */ - if (rtcb->pid == 0) + if (rtcb->flink == NULL) { ustackbase = g_idle_topstack - 4; ustacksize = CONFIG_IDLETHREAD_STACKSIZE; diff --git a/arch/or1k/src/common/up_assert.c b/arch/or1k/src/common/up_assert.c index 74f1cb20ceb..e92b55d78c8 100644 --- a/arch/or1k/src/common/up_assert.c +++ b/arch/or1k/src/common/up_assert.c @@ -247,7 +247,7 @@ static void up_dumpstate(void) /* Get the limits on the user stack memory */ - if (rtcb->pid == 0) + if (rtcb->flink == NULL) { ustackbase = g_idle_topstack - 4; ustacksize = CONFIG_IDLETHREAD_STACKSIZE; diff --git a/arch/renesas/src/m16c/m16c_dumpstate.c b/arch/renesas/src/m16c/m16c_dumpstate.c index 0bf822f475e..d85dd2da77a 100644 --- a/arch/renesas/src/m16c/m16c_dumpstate.c +++ b/arch/renesas/src/m16c/m16c_dumpstate.c @@ -166,7 +166,7 @@ void up_dumpstate(void) /* Get the limits on the user stack memory */ - if (rtcb->pid == 0) + if (rtcb->flink == NULL) { ustackbase = g_idle_topstack - 1; ustacksize = CONFIG_IDLETHREAD_STACKSIZE; diff --git a/arch/renesas/src/sh1/sh1_dumpstate.c b/arch/renesas/src/sh1/sh1_dumpstate.c index 8476d97040c..f6543384fb3 100644 --- a/arch/renesas/src/sh1/sh1_dumpstate.c +++ b/arch/renesas/src/sh1/sh1_dumpstate.c @@ -156,7 +156,7 @@ void up_dumpstate(void) /* Get the limits on the user stack memory */ - if (rtcb->pid == 0) + if (rtcb->flink == NULL) { ustackbase = g_idle_topstack - 4; ustacksize = CONFIG_IDLETHREAD_STACKSIZE; diff --git a/arch/risc-v/src/rv32im/up_dumpstate.c b/arch/risc-v/src/rv32im/up_dumpstate.c index 20de866b2ea..592e8249cfd 100644 --- a/arch/risc-v/src/rv32im/up_dumpstate.c +++ b/arch/risc-v/src/rv32im/up_dumpstate.c @@ -159,7 +159,7 @@ void up_dumpstate(void) /* Get the limits on the user stack memory */ - if (rtcb->pid == 0) + if (rtcb->flink == NULL) { ustackbase = g_idle_topstack - 4; ustacksize = CONFIG_IDLETHREAD_STACKSIZE; diff --git a/arch/x86/src/common/up_assert.c b/arch/x86/src/common/up_assert.c index 208ea9d7dfc..f7d3d691143 100644 --- a/arch/x86/src/common/up_assert.c +++ b/arch/x86/src/common/up_assert.c @@ -160,7 +160,7 @@ static void up_dumpstate(void) /* Get the limits on the user stack memory */ - if (rtcb->pid == 0) + if (rtcb->flink == NULL) { ustackbase = g_idle_topstack - 4; ustacksize = CONFIG_IDLETHREAD_STACKSIZE; diff --git a/arch/xtensa/src/common/xtensa_dumpstate.c b/arch/xtensa/src/common/xtensa_dumpstate.c index c47049c9e73..29c856452db 100644 --- a/arch/xtensa/src/common/xtensa_dumpstate.c +++ b/arch/xtensa/src/common/xtensa_dumpstate.c @@ -214,7 +214,7 @@ void xtensa_dumpstate(void) /* Get the limits on the user stack memory */ - if (rtcb->pid == 0) + if (rtcb->flink == NULL) { ustackbase = (uint32_t)&g_idlestack[IDLETHREAD_STACKWORDS-1]; ustacksize = IDLETHREAD_STACKSIZE;