Lines Matching refs:lp
117 static inline void arch_spin_lock_queued(arch_spinlock_t *lp) in arch_spin_lock_queued() argument
131 old = READ_ONCE(lp->lock); in arch_spin_lock_queued()
142 if (__atomic_cmpxchg_bool(&lp->lock, old, new)) in arch_spin_lock_queued()
150 if (__atomic_cmpxchg_bool(&lp->lock, old, new)) in arch_spin_lock_queued()
182 old = READ_ONCE(lp->lock); in arch_spin_lock_queued()
187 if (__atomic_cmpxchg_bool(&lp->lock, old, new)) in arch_spin_lock_queued()
211 static inline void arch_spin_lock_classic(arch_spinlock_t *lp) in arch_spin_lock_classic() argument
218 owner = arch_spin_yield_target(READ_ONCE(lp->lock), NULL); in arch_spin_lock_classic()
224 old = arch_load_niai4(&lp->lock); in arch_spin_lock_classic()
229 if (arch_cmpxchg_niai8(&lp->lock, old, new)) { in arch_spin_lock_classic()
243 void arch_spin_lock_wait(arch_spinlock_t *lp) in arch_spin_lock_wait() argument
247 arch_spin_lock_queued(lp); in arch_spin_lock_wait()
249 arch_spin_lock_classic(lp); in arch_spin_lock_wait()
253 int arch_spin_trylock_retry(arch_spinlock_t *lp) in arch_spin_trylock_retry() argument
259 owner = READ_ONCE(lp->lock); in arch_spin_trylock_retry()
262 if (__atomic_cmpxchg_bool(&lp->lock, 0, cpu)) in arch_spin_trylock_retry()
314 void arch_spin_relax(arch_spinlock_t *lp) in arch_spin_relax() argument
318 cpu = READ_ONCE(lp->lock) & _Q_LOCK_CPU_MASK; in arch_spin_relax()