• Raghu Krishnamurthy's avatar
    T589: Fix insufficient ordering guarantees in bakery lock · c0018913
    Raghu Krishnamurthy authored
    
    
    bakery_lock_get() uses DMB LD after lock acquisition and
    bakery_lock_release() uses DMB ST before releasing the lock. This is
    insufficient in both cases. With just DMB LD, stores in the critical
    section can be reordered before the DMB LD which could mean writes in
    the critical section completing before the lock has been acquired
    successfully. Similarly, with just DMB ST, a load in the critical section
    could be reordered after the the DMB ST. DMB is the least expensive
    barrier that can provide the required ordering.
    Signed-off-by: default avatarRaghu Krishnamurthy <raghu.ncstate@icloud.com>
    Change-Id: Ieb74cbf5b76b09e1789331b71f37f7c660221b0e
    c0018913
bakery_lock_coherent.c 5.43 KB