nuttx/include
ligd e2df52390a SMP: fix crash when switch to new task which is still running
Situation:

Assume we have 2 cpus, and busy run task0.

CPU0                                CPU1
task0 -> task1                      task2 -> task0
1. remove task0 form runninglist
2. take task1 as new tcb
3. add task0 to blocklist
4. clear spinlock
                                    4.1 remove task2 form runninglist
                                    4.2 take task0 as new tcb
                                    4.3 add task2 to blocklist
                                    4.4 use svc ISR swith to task0
                                    4.5 crash
5. use svc ISR swith to task1

Fix:
Move clear spinlock to the end of svc ISR

Signed-off-by: ligd <liguiding1@xiaomi.com>
2022-09-17 17:37:47 +09:00
..
arpa Net thread-safe ntoa functions 2022-08-02 21:04:19 +08:00
cxx libc/wchar: remove unnecessary config 2022-07-27 00:36:49 +08:00
net net/sockopt: move BINDTODEVICE to socket level 2022-08-25 17:56:52 +08:00
netinet udp: add IPVx_PKTINFO related support 2022-09-07 10:49:47 +08:00
netpacket netpacket/sockaddr_ll: complete the members of sockaddr_ll 2022-06-03 13:04:09 +08:00
nuttx SMP: fix crash when switch to new task which is still running 2022-09-17 17:37:47 +09:00
ssp
sys net/sockopt: move BINDTODEVICE to socket level 2022-08-25 17:56:52 +08:00
.gitignore Add Embedded Template Library (ETL) support 2022-08-05 09:38:48 +08:00
aio.h Change dpends on SCHED_[L|H]PWORK to SCHED_WORKQUEUE 2022-05-28 18:41:51 +03:00
alloca.h
assert.h assert: static_assert is not support in c standard C89,C99. 2022-04-21 23:11:21 +08:00
byteswap.h
ctype.h
debug.h libc: add lib_dump utils 2022-08-24 16:58:10 +08:00
dirent.h fs/dir: support fchdir and dirfd 2022-08-09 23:30:01 +08:00
dlfcn.h
dsp.h
dspb16.h
elf32.h
elf64.h
elf.h
endian.h include:endian.h add openbsd style 2022-09-05 10:39:36 -03:00
err.h libc/err: Add _func suffix to avoid the the penitential symbol collision 2022-08-08 07:39:59 -04:00
errno.h
execinfo.h
fcntl.h libc: Implement memfd on top of tmpfs 2022-08-09 22:13:09 +03:00
fixedmath.h
fnmatch.h
ftw.h
getopt.h
glob.h
grp.h
hex2bin.h
ifaddrs.h
inttypes.h
iso646.h
langinfo.h
libgen.h
libintl.h
limits.h libc/wchar: support wchar 2022-07-27 00:36:49 +08:00
locale.h
lzf.h
malloc.h mm/mm_heap: change CONFIG_MM_BACKTRACE to int type 2022-07-26 23:45:31 +08:00
mqueue.h
netdb.h
nl_types.h
nxflat.h
poll.h
pthread.h
pty.h
pwd.h
queue.h queue: add dq_rmafter support 2022-09-08 15:03:54 +02:00
resolv.h Add dn resolution function 2022-03-17 09:37:15 +02:00
sched.h
semaphore.h
signal.h signal: add define of SIGHUP/SIGTTIN 2022-06-03 12:50:14 +08:00
spawn.h libc: Implement execvp, execlp and execvpe as macro 2022-04-22 10:40:31 +03:00
stdbool.h libc: Remove C99_BOOL8 from libs/libxx/Kconfig 2022-05-05 16:23:32 -03:00
stddef.h
stdint.h include/wchar.h: Remove NULL macro from it 2022-06-03 22:25:49 +03:00
stdio.h
stdlib.h libc/wchar: support wchar 2022-07-27 00:36:49 +08:00
stdnoreturn.h
string.h libc:add timingsafe_bcmp to libc 2022-09-05 22:27:05 +08:00
strings.h Remove the unneeded void cast 2022-04-17 23:32:05 +03:00
syscall.h
syslog.h
termios.h
threads.h
time.h libc/time: rearrange itimerspec struct elements 2022-06-03 13:04:25 +08:00
unistd.h fs/dir: support fchdir and dirfd 2022-08-09 23:30:01 +08:00
utime.h
uuid.h
wchar.h arch: Define WCHAR_[MIN|MAX] in arch/include/limits.h 2022-06-03 22:25:49 +03:00
wctype.h libc: Remove the unnecessary include from wchar and wctype 2022-07-27 10:55:37 +03:00