Lines Matching refs:tail
94 u32 tail; in encode_tail() local
99 tail = (cpu + 1) << _Q_TAIL_CPU_OFFSET; in encode_tail()
100 tail |= idx << _Q_TAIL_IDX_OFFSET; /* assume < 4 */ in encode_tail()
102 return tail; in encode_tail()
105 static inline struct mcs_spinlock *decode_tail(u32 tail) in decode_tail() argument
107 int cpu = (tail >> _Q_TAIL_CPU_OFFSET) - 1; in decode_tail()
108 int idx = (tail & _Q_TAIL_IDX_MASK) >> _Q_TAIL_IDX_OFFSET; in decode_tail()
133 u16 tail; member
137 u16 tail; member
175 static __always_inline u32 xchg_tail(struct qspinlock *lock, u32 tail) in xchg_tail() argument
179 return (u32)xchg(&l->tail, tail >> _Q_TAIL_OFFSET) << _Q_TAIL_OFFSET; in xchg_tail()
205 static __always_inline u32 xchg_tail(struct qspinlock *lock, u32 tail) in xchg_tail() argument
210 new = (val & _Q_LOCKED_PENDING_MASK) | tail; in xchg_tail()
284 u32 new, old, tail; in queued_spin_lock_slowpath() local
363 tail = encode_tail(smp_processor_id(), idx); in queued_spin_lock_slowpath()
384 old = xchg_tail(lock, tail); in queued_spin_lock_slowpath()
425 if (val != tail) { in queued_spin_lock_slowpath()