Lines Matching refs:lock
26 static inline u32 arch_spin_read_noalloc(void *lock) in arch_spin_read_noalloc() argument
28 return atomic_cmpxchg((atomic_t *)lock, -1, -1); in arch_spin_read_noalloc()
35 void arch_spin_lock_slow(arch_spinlock_t *lock, u32 my_ticket) in arch_spin_lock_slow() argument
38 __insn_fetchand4(&lock->lock, ~__ARCH_SPIN_NEXT_OVERFLOW); in arch_spin_lock_slow()
43 u32 val = arch_spin_read_noalloc(lock); in arch_spin_lock_slow()
55 int arch_spin_trylock(arch_spinlock_t *lock) in arch_spin_trylock() argument
57 u32 val = arch_spin_read_noalloc(lock); in arch_spin_trylock()
60 return cmpxchg(&lock->lock, val, (val + 1) & ~__ARCH_SPIN_NEXT_OVERFLOW) in arch_spin_trylock()
65 void arch_spin_unlock_wait(arch_spinlock_t *lock) in arch_spin_unlock_wait() argument
68 while (arch_spin_is_locked(lock)) in arch_spin_unlock_wait()
83 val = __insn_fetchaddgez4(&rw->lock, 1); in __read_lock_failed()
99 val = __insn_fetchand4(&rw->lock, ~__WRITE_LOCK_BIT); in __write_lock_failed()
101 val = __insn_fetchor4(&rw->lock, __WRITE_LOCK_BIT); in __write_lock_failed()