Fix an error introduced into ALL implmentations of interrupt dispatch logic

This commit is contained in:
Gregory Nutt 2014-08-28 08:41:57 -06:00
parent dfdaeb31ac
commit 45f3328247
13 changed files with 22 additions and 13 deletions

View File

@ -118,7 +118,7 @@ void up_doirq(int irq, uint32_t *regs)
* thread at the head of the ready-to-run list.
*/
(void)group_addrenv(rtcb);
(void)group_addrenv(NULL);
#endif
}
#endif

View File

@ -118,7 +118,7 @@ uint32_t *arm_doirq(int irq, uint32_t *regs)
* thread at the head of the ready-to-run list.
*/
(void)group_addrenv(rtcb);
(void)group_addrenv(NULL);
#endif
}
#endif

View File

@ -134,7 +134,7 @@ void up_decodeirq(uint32_t* regs)
* thread at the head of the ready-to-run list.
*/
(void)group_addrenv(rtcb);
(void)group_addrenv(NULL);
#endif
}
#endif

View File

@ -141,7 +141,7 @@ void up_decodeirq(uint32_t* regs)
* thread at the head of the ready-to-run list.
*/
(void)group_addrenv(rtcb);
(void)group_addrenv(NULL);
#endif
}
#endif

View File

@ -1,6 +1,5 @@
/********************************************************************************
* arch/arm/src/lpc31xx/lpc31_decodeirq.c
* arch/arm/src/chip/lpc31_decodeirq.c
*
* Copyright (C) 2009, 2014 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
@ -142,7 +141,7 @@ void up_decodeirq(uint32_t *regs)
* thread at the head of the ready-to-run list.
*/
(void)group_addrenv(rtcb);
(void)group_addrenv(NULL);
#endif
}
#endif

View File

@ -113,7 +113,7 @@ uint32_t *up_doirq(int irq, uint32_t *regs)
* thread at the head of the ready-to-run list.
*/
(void)group_addrenv(rtcb);
(void)group_addrenv(NULL);
#endif
}
#endif

View File

@ -113,7 +113,7 @@ uint8_t *up_doirq(int irq, uint8_t *regs)
* thread at the head of the ready-to-run list.
*/
(void)group_addrenv(rtcb);
(void)group_addrenv(NULL);
#endif
}
#endif

View File

@ -119,7 +119,7 @@ uint32_t *up_doirq(int irq, uint32_t *regs)
* thread at the head of the ready-to-run list.
*/
(void)group_addrenv(rtcb);
(void)group_addrenv(NULL);
#endif
}
#endif

View File

@ -170,7 +170,7 @@ uint32_t *pic32mx_decodeirq(uint32_t *regs)
* thread at the head of the ready-to-run list.
*/
(void)group_addrenv(rtcb);
(void)group_addrenv(NULL);
#endif
}
#endif

View File

@ -121,7 +121,7 @@ uint32_t *up_doirq(int irq, uint32_t* regs)
* thread at the head of the ready-to-run list.
*/
(void)group_addrenv(rtcb);
(void)group_addrenv(NULL);
#endif
}
#endif

View File

@ -125,7 +125,7 @@ static uint32_t *common_handler(int irq, uint32_t *regs)
* thread at the head of the ready-to-run list.
*/
(void)group_addrenv(rtcb);
(void)group_addrenv(NULL);
#endif
}
#endif

View File

@ -112,7 +112,7 @@ FAR chipreg_t *up_doirq(uint8_t irq, FAR chipreg_t *regs)
* ready-to-run list.
*/
(void)group_addrenv(rtcb);
(void)group_addrenv(NULL);
}
regs = newregs;

View File

@ -43,6 +43,7 @@
#include <nuttx/sched.h>
#include "sched/sched.h"
#include "group/group.h"
#ifdef CONFIG_ARCH_ADDRENV
@ -107,6 +108,15 @@ int group_addrenv(FAR struct tcb_s *tcb)
gid_t gid;
int ret;
/* NULL for the tcb means to use the TCB of the task at the head of the
* ready to run list.
*/
if (!tcb)
{
tcb = (FAR struct tcb_s *)g_readytorun.head;
}
DEBUGASSERT(tcb && tcb->group);
group = tcb->group;