From c2bdac146b4f12d3f0065b865d5d36529c2cbfaa Mon Sep 17 00:00:00 2001 From: Vineet Gupta Date: Sat, 17 Oct 2015 15:29:59 +0530 Subject: ARC: spinlock: Document the EX based spin_unlock Signed-off-by: Vineet Gupta --- arch/arc/include/asm/spinlock.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'arch/arc/include/asm/spinlock.h') diff --git a/arch/arc/include/asm/spinlock.h b/arch/arc/include/asm/spinlock.h index 233d5ffe6ec7..968c730ef114 100644 --- a/arch/arc/include/asm/spinlock.h +++ b/arch/arc/include/asm/spinlock.h @@ -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) -- cgit v1.2.3-59-g8ed1b