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

   
   ## Summary
   
   wqueue: fix race-condition on work_queue
   
   CPU0                     CPU1
   
   work_queue(a)            work_queue(a)
                            -> work_cancel(a)
   -> work_cancel(a)
   -> enter_critical()
   -> sq_addlast(a)
   -> leave_critical()
                            -> enter_critical()
                            -> sq_addlast(a) // double add, wrong
                            -> leave_critical()
   
   Also, this happens in mulit-threads in one CPU.
   
   Fix:
   
   work_cancel() should in critical section.
   
   Change-Id: Icde312f8c0ae71f07c4231e140cb5c3fd3937425
   Signed-off-by: ligd <liguidi...@xiaomi.com>
   
   
   ## Impact
   
   wqeue
   
   ## 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