Lines Matching refs:lock
35 static inline void _raw_compare_and_delay(unsigned int *lock, unsigned int old) in _raw_compare_and_delay() argument
37 asm(".insn rsy,0xeb0000000022,%0,0,%1" : : "d" (old), "Q" (*lock)); in _raw_compare_and_delay()
47 owner = ACCESS_ONCE(lp->lock); in arch_spin_lock_wait()
50 if (_raw_compare_and_swap(&lp->lock, 0, cpu)) in arch_spin_lock_wait()
63 _raw_compare_and_delay(&lp->lock, owner); in arch_spin_lock_wait()
64 owner = ACCESS_ONCE(lp->lock); in arch_spin_lock_wait()
86 owner = ACCESS_ONCE(lp->lock); in arch_spin_lock_wait_flags()
90 if (_raw_compare_and_swap(&lp->lock, 0, cpu)) in arch_spin_lock_wait_flags()
103 _raw_compare_and_delay(&lp->lock, owner); in arch_spin_lock_wait_flags()
104 owner = ACCESS_ONCE(lp->lock); in arch_spin_lock_wait_flags()
125 owner = ACCESS_ONCE(lp->lock); in arch_spin_trylock_retry()
128 if (_raw_compare_and_swap(&lp->lock, 0, cpu)) in arch_spin_trylock_retry()
131 _raw_compare_and_delay(&lp->lock, owner); in arch_spin_trylock_retry()
143 __RAW_LOCK(&rw->lock, -1, __RAW_OP_ADD); in _raw_read_lock_wait()
152 old = ACCESS_ONCE(rw->lock); in _raw_read_lock_wait()
156 _raw_compare_and_delay(&rw->lock, old); in _raw_read_lock_wait()
159 if (_raw_compare_and_swap(&rw->lock, old, old + 1)) in _raw_read_lock_wait()
171 old = ACCESS_ONCE(rw->lock); in _raw_read_trylock_retry()
174 _raw_compare_and_delay(&rw->lock, old); in _raw_read_trylock_retry()
177 if (_raw_compare_and_swap(&rw->lock, old, old + 1)) in _raw_read_trylock_retry()
198 old = ACCESS_ONCE(rw->lock); in _raw_write_lock_wait()
202 prev = __RAW_LOCK(&rw->lock, 0x80000000, __RAW_OP_OR); in _raw_write_lock_wait()
208 _raw_compare_and_delay(&rw->lock, old); in _raw_write_lock_wait()
228 old = ACCESS_ONCE(rw->lock); in _raw_write_lock_wait()
231 _raw_compare_and_swap(&rw->lock, old, old | 0x80000000)) in _raw_write_lock_wait()
238 _raw_compare_and_delay(&rw->lock, old); in _raw_write_lock_wait()
251 old = ACCESS_ONCE(rw->lock); in _raw_write_trylock_retry()
254 _raw_compare_and_delay(&rw->lock, old); in _raw_write_trylock_retry()
257 if (_raw_compare_and_swap(&rw->lock, 0, 0x80000000)) in _raw_write_trylock_retry()