ARC: spinlock: Document the EX based spin_unlock
authorVineet Gupta <vgupta@synopsys.com>
Sat, 17 Oct 2015 09:59:59 +0000 (15:29 +0530)
committerVineet Gupta <vgupta@synopsys.com>
Mon, 28 Aug 2017 22:17:36 +0000 (15:17 -0700)
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
arch/arc/include/asm/spinlock.h

index 233d5ffe6ec779eb376e5beaf5a031fce6fa97c1..968c730ef114dec8f8f40ab4a13649b31374a443 100644 (file)
@@ -296,6 +296,12 @@ static inline void arch_spin_unlock(arch_spinlock_t *lock)
         */
        smp_mb();
 
+       /*
+        * EX is not really required here, a simple STore of 0 suffices.
+        * However this causes tasklist livelocks in SystemC based SMP virtual
+        * platforms where the systemc core scheduler uses EX as a cue for
+        * moving to next core. Do a git log of this file for details
+        */
        __asm__ __volatile__(
        "       ex  %0, [%1]            \n"
        : "+r" (val)