summaryrefslogtreecommitdiff
path: root/nuttx/arch/pjrc-8051
diff options
context:
space:
mode:
Diffstat (limited to 'nuttx/arch/pjrc-8051')
-rw-r--r--nuttx/arch/pjrc-8051/src/up_reprioritizertr.c19
1 files changed, 3 insertions, 16 deletions
diff --git a/nuttx/arch/pjrc-8051/src/up_reprioritizertr.c b/nuttx/arch/pjrc-8051/src/up_reprioritizertr.c
index 97d5682e0..eef37c16f 100644
--- a/nuttx/arch/pjrc-8051/src/up_reprioritizertr.c
+++ b/nuttx/arch/pjrc-8051/src/up_reprioritizertr.c
@@ -85,27 +85,14 @@ void up_reprioritize_rtr(FAR _TCB *tcb, ubyte priority)
{
/* Verify that the caller is sane */
-#if CONFIG_DEBUG /* We only check parameters when debug is enabled */
- if (priority < SCHED_PRIORITY_MIN ||
+ if (tcb->task_state < FIRST_READY_TO_RUN_STATE ||
+ tcb->task_state > LAST_READY_TO_RUN_STATE ||
+ priority < SCHED_PRIORITY_MIN ||
priority > SCHED_PRIORITY_MAX)
{
PANIC(OSERR_BADREPRIORITIZESTATE);
}
else
-#endif
- if (tcb->task_state < FIRST_READY_TO_RUN_STATE ||
- tcb->task_state > LAST_READY_TO_RUN_STATE)
- {
- /* This is a hack and needs to be fixed.. here some taks is reprioritizing
- * another task that is not running. Here we just set the priority of
- * the task -- BUT some of the other states are also prioritized and the
- * waiting task should also be re-ordered in the prioritized wiating list.
- * As a consequence, the other task is still waiting at the lower priority.
- */
-
- tcb->sched_priority = priority;
- }
- else
{
FAR _TCB *rtcb = (FAR _TCB*)g_readytorun.head;
boolean switch_needed;