Lines Matching refs:head

53 	set_bit(0, (volatile unsigned long *)&lock->tickets.head);  in __ticket_enter_slowpath()
73 __ticket_t head) in __ticket_check_and_clear_slowpath() argument
75 if (head & TICKET_SLOWPATH_FLAG) { in __ticket_check_and_clear_slowpath()
78 old.tickets.head = head; in __ticket_check_and_clear_slowpath()
79 new.tickets.head = head & ~TICKET_SLOWPATH_FLAG; in __ticket_check_and_clear_slowpath()
80 old.tickets.tail = new.tickets.head + TICKET_LOCK_INC; in __ticket_check_and_clear_slowpath()
90 return __tickets_equal(lock.tickets.head, lock.tickets.tail); in arch_spin_value_unlocked()
111 if (likely(inc.head == inc.tail)) in arch_spin_lock()
118 inc.head = READ_ONCE(lock->tickets.head); in arch_spin_lock()
119 if (__tickets_equal(inc.head, inc.tail)) in arch_spin_lock()
126 __ticket_check_and_clear_slowpath(lock, inc.head); in arch_spin_lock()
136 if (!__tickets_equal(old.tickets.head, old.tickets.tail)) in arch_spin_trylock()
150 __ticket_t head; in arch_spin_unlock() local
154 head = xadd(&lock->tickets.head, TICKET_LOCK_INC); in arch_spin_unlock()
156 if (unlikely(head & TICKET_SLOWPATH_FLAG)) { in arch_spin_unlock()
157 head &= ~TICKET_SLOWPATH_FLAG; in arch_spin_unlock()
158 __ticket_unlock_kick(lock, (head + TICKET_LOCK_INC)); in arch_spin_unlock()
161 __add(&lock->tickets.head, TICKET_LOCK_INC, UNLOCK_LOCK_PREFIX); in arch_spin_unlock()
168 return !__tickets_equal(tmp.tail, tmp.head); in arch_spin_is_locked()
175 tmp.head &= ~TICKET_SLOWPATH_FLAG; in arch_spin_is_contended()
176 return (__ticket_t)(tmp.tail - tmp.head) > TICKET_LOCK_INC; in arch_spin_is_contended()
188 __ticket_t head = READ_ONCE(lock->tickets.head); in arch_spin_unlock_wait() local
196 if (__tickets_equal(tmp.head, tmp.tail) || in arch_spin_unlock_wait()
197 !__tickets_equal(tmp.head, head)) in arch_spin_unlock_wait()