GUIDINGLI opened a new pull request, #6833:
URL: https://github.com/apache/incubator-nuttx/pull/6833

   
   ## Summary
   
   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 <liguidi...@xiaomi.com>
   
   
   ## Impact
   
   SMP
   
   ## Testing
   
   VELA
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to