Lines Matching refs:lock

93 static inline int arch_load_niai4(int *lock)  in arch_load_niai4()  argument
100 : [owner] "=d" (owner) : [lock] "R" (*lock) : "memory"); in arch_load_niai4()
106 static inline int arch_try_cmpxchg_niai8(int *lock, int old, int new) in arch_try_cmpxchg_niai8() argument
113 : [old] "+d" (old), [lock] "+Q" (*lock), "=@cc" (cc) in arch_try_cmpxchg_niai8()
121 static inline int arch_try_cmpxchg_niai8(int *lock, int old, int new) in arch_try_cmpxchg_niai8() argument
128 : [old] "+d" (old), [lock] "+Q" (*lock) in arch_try_cmpxchg_niai8()
136 static inline struct spin_wait *arch_spin_decode_tail(int lock) in arch_spin_decode_tail() argument
140 ix = (lock & _Q_TAIL_IDX_MASK) >> _Q_TAIL_IDX_OFFSET; in arch_spin_decode_tail()
141 cpu = (lock & _Q_TAIL_CPU_MASK) >> _Q_TAIL_CPU_OFFSET; in arch_spin_decode_tail()
145 static inline int arch_spin_yield_target(int lock, struct spin_wait *node) in arch_spin_yield_target() argument
147 if (lock & _Q_LOCK_CPU_MASK) in arch_spin_yield_target()
148 return lock & _Q_LOCK_CPU_MASK; in arch_spin_yield_target()
169 old = READ_ONCE(lp->lock); in arch_spin_lock_queued()
181 if (arch_try_cmpxchg(&lp->lock, &old, new)) in arch_spin_lock_queued()
189 if (arch_try_cmpxchg(&lp->lock, &old, new)) in arch_spin_lock_queued()
221 old = READ_ONCE(lp->lock); in arch_spin_lock_queued()
226 if (arch_try_cmpxchg(&lp->lock, &old, new)) in arch_spin_lock_queued()
257 owner = arch_spin_yield_target(READ_ONCE(lp->lock), NULL); in arch_spin_lock_classic()
263 old = arch_load_niai4(&lp->lock); in arch_spin_lock_classic()
268 if (arch_try_cmpxchg_niai8(&lp->lock, old, new)) { in arch_spin_lock_classic()
297 owner = READ_ONCE(lp->lock); in arch_spin_trylock_retry()
300 if (arch_try_cmpxchg(&lp->lock, &owner, cpu)) in arch_spin_trylock_retry()
356 cpu = READ_ONCE(lp->lock) & _Q_LOCK_CPU_MASK; in arch_spin_relax()