incubator-nuttx/sched/wdog
Gregory Nutt 69e9f8638d Most interrupt handling logic interacts with tasks via standard mechanism such as sem_post, sigqueue, mq_send, etc. This all call enter_critical_section and are assumed to be safe in the SMP case.
But certain logic interacts with tasks in different ways.  The only one that comes to mind are wdogs.  There is a tasking interface that to manipulate wdogs, and a different interface in the timer interrupt handling logic to manage wdog expirations.

In the normal case, this is fine.  Since the tasking level code calls enter_critical_section, interrupts are disabled an no conflicts can occur.  But that may not be the case in the SMP case.  Most architectures do not permit disabling interrupts on other CPUs so enter_critical_section must work differently:  Locks are required to protect code.

So this change adds locking (via enter_critical section) to wdog expiration logic for the the case if the SMP configuration.
2016-11-18 13:57:30 -06:00
..
Make.defs
wd_cancel.c Remove some empty file section section header comments 2016-02-17 17:17:44 -06:00
wd_create.c Remove some empty file section section header comments 2016-02-17 17:17:44 -06:00
wd_delete.c nuttx/sched: Replace irqsave() with enter_critical_section(); replace irqrestore() with leave_critical_section() 2016-02-14 08:17:46 -06:00
wd_gettime.c sched/: Review and correct some stylistic inconsistencies 2016-08-07 08:25:30 -06:00
wd_initialize.c Remove some empty file section section header comments 2016-02-17 17:17:44 -06:00
wd_recover.c nuttx/sched: Replace irqsave() with enter_critical_section(); replace irqrestore() with leave_critical_section() 2016-02-14 08:17:46 -06:00
wd_start.c Most interrupt handling logic interacts with tasks via standard mechanism such as sem_post, sigqueue, mq_send, etc. This all call enter_critical_section and are assumed to be safe in the SMP case. 2016-11-18 13:57:30 -06:00
wdog.h Remove some empty file section section header comments 2016-02-17 17:17:44 -06:00