Lines Matching refs:val
35 u32 val = atomic_fetch_add(1<<16, &lock->val); in ticket_spin_lock() local
36 u16 ticket = val >> 16; in ticket_spin_lock()
38 if (ticket == (u16)val) in ticket_spin_lock()
49 atomic_cond_read_acquire(&lock->val, ticket == (u16)VAL); in ticket_spin_lock()
55 u32 old = atomic_read(&lock->val); in ticket_spin_trylock()
60 return atomic_try_cmpxchg(&lock->val, &old, old + (1<<16)); /* SC, for RCsc */ in ticket_spin_trylock()
66 u32 val = atomic_read(&lock->val); in ticket_spin_unlock() local
68 smp_store_release(ptr, (u16)val + 1); in ticket_spin_unlock()
73 u32 val = lock.val.counter; in ticket_spin_value_unlocked() local
75 return ((val >> 16) == (val & 0xffff)); in ticket_spin_value_unlocked()
80 arch_spinlock_t val = READ_ONCE(*lock); in ticket_spin_is_locked() local
82 return !ticket_spin_value_unlocked(val); in ticket_spin_is_locked()
87 u32 val = atomic_read(&lock->val); in ticket_spin_is_contended() local
89 return (s16)((val >> 16) - (val & 0xffff)) > 1; in ticket_spin_is_contended()