nuttx/arch/avr/src
Masayuki Ishikawa ec73a4e69c arch & sched: task: Fix up_exit() and nxtask_exit() for SMP
Summary:
- During repeating ostest with sabre-6quad:smp (QEMU),
  I noticed that pthread_rwlock_test sometimes stops
- Finally, I found that nxtask_exit() released a critical
  section too early before context switching which resulted in
  selecting inappropriate TCB
- This commit fixes this issue by moving nxsched_resume_scheduler()
  from nxtask_exit() to up_exit() and also removing
  spin_setbit() and spin_clrbit() from nxtask_exit()
  because the caller holds a critical section
- To be consistent with non-SMP cases, the above changes
  were done for all CPU architectures

Impact:
- This commit affects all CPU architectures regardless of SMP

Testing:
- Tested with ostest with the following configs
- sabre-6quad:smp (QEMU, dev board), sabre-6quad:nsh (QEMU)
- spresense:wifi_smp
- sim:smp, sim:ostest
- maix-bit:smp (QEMU)
- esp32-devkitc:smp (QEMU)
- lc823450-xgevk:rndis

Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2020-12-21 23:29:56 -06:00
..
at32uc3 arch/avr/src/at32uc3/at32uc3_serial.c: Fix a type mismatch 2020-11-16 08:29:00 -08:00
at90usb Run codespell -w with the latest dictonary again 2020-02-23 22:27:46 +01:00
atmega build: Remove the empty variable assignment 2020-05-24 08:24:13 -06:00
avr arch: Remove the special check for idle thread in up_use_stack 2020-12-16 09:54:29 +09:00
avr32 arch: Remove the special check for idle thread in up_use_stack 2020-12-16 09:54:29 +09:00
common arch & sched: task: Fix up_exit() and nxtask_exit() for SMP 2020-12-21 23:29:56 -06:00
xmega/hardware Rename all remaining arch/xxx/src/xxx/chip to arch/xxx/src/xxx/hardware. 2019-05-25 09:27:28 -06:00
.gitignore build: Remve the unnecessary .gitignore 2020-05-23 18:00:40 +01:00
Makefile arch/*/src/Makefile: Generate dependencies for head files. 2020-12-15 21:00:52 -06:00