nuttx/arch/arm64/src/common
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
..
addrenv.h
arm64_allocateheap.c
arm64_arch.h
arm64_arch_timer.c
arm64_arch_timer.h
arm64_assert.c arch: Call board_reset before up_irq_save and spin_trylock 2022-07-28 08:18:24 -04:00
arm64_backtrace.c compiler.h: Add nosanitize_address macro 2022-08-23 17:50:52 +02:00
arm64_blocktask.c
arm64_boot.c
arm64_cache.c
arm64_checkstack.c arch/stack: rename do_stack_check with arch prefix 2022-07-27 20:48:33 +08:00
arm64_copystate.c
arm64_cpu_idle.S
arm64_cpu_psci.c
arm64_cpu_psci.h
arm64_cpuidlestack.c
arm64_cpuindex.c
arm64_cpupause.c
arm64_cpustart.c arch: arm64: Fix warnings in arm64_cpstart.c 2022-07-19 10:49:32 +08:00
arm64_createstack.c
arm64_doirq.c SMP: fix crash when switch to new task which is still running 2022-09-17 17:37:47 +09:00
arm64_exit.c
arm64_fatal.c
arm64_fatal.h
arm64_fpu.c arch: Improve documentation for up_fpucmp function 2022-08-26 11:57:06 +08:00
arm64_fpu.h
arm64_fpu_func.S
arm64_gic.h
arm64_gicv3.c
arm64_head.S
arm64_idle.c
arm64_initialize.c
arm64_initialstate.c
arm64_internal.h arch/stack: rename do_stack_check with arch prefix 2022-07-27 20:48:33 +08:00
arm64_macro.inc
arm64_mmu.c
arm64_mmu.h
arm64_nputs.c up_nputs: fix AddressSanitizer: global-buffer-overflow problem 2022-09-01 11:51:48 +08:00
arm64_releasepending.c
arm64_releasestack.c
arm64_reprioritizertr.c
arm64_schedulesigaction.c
arm64_sigdeliver.c
arm64_smccc.S
arm64_smp.h
arm64_stackframe.c
arm64_syscall.c SMP: fix crash when switch to new task which is still running 2022-09-17 17:37:47 +09:00
arm64_task_sched.c
arm64_testset.S
arm64_unblocktask.c
arm64_usestack.c
arm64_vector_table.S
arm64_vectors.S
arm64_vfork.c
arm64_vfork.h
arm64_vfork_func.S
barriers.h
crt0.c
Make.defs arch/arm64: Implement up_nputs 2022-07-17 17:31:19 +03:00