• Home
  • Raw
  • Download

Lines Matching refs:count

73 		#c, atomic_long_read(&(sem)->count),		\
195 long count = atomic_long_read(&sem->count); in is_rwsem_reader_owned() local
197 if (count & RWSEM_WRITER_MASK) in is_rwsem_reader_owned()
245 *cntp = atomic_long_add_return_acquire(RWSEM_READER_BIAS, &sem->count); in rwsem_read_trylock()
265 if (atomic_long_try_cmpxchg_acquire(&sem->count, &tmp, RWSEM_WRITER_LOCKED)) { in rwsem_write_trylock()
330 atomic_long_set(&sem->count, RWSEM_UNLOCKED_VALUE); in __init_rwsem()
387 atomic_long_andnot(RWSEM_FLAG_HANDOFF | RWSEM_FLAG_WAITERS, &sem->count); in rwsem_del_waiter()
439 if (unlikely(atomic_long_read(&sem->count) < 0)) in rwsem_mark_wake()
451 oldcount = atomic_long_fetch_add(adjustment, &sem->count); in rwsem_mark_wake()
466 atomic_long_add(-adjustment, &sem->count); in rwsem_mark_wake()
520 oldcount = atomic_long_read(&sem->count); in rwsem_mark_wake()
539 atomic_long_add(adjustment, &sem->count); in rwsem_mark_wake()
574 long count, new; in rwsem_try_write_lock() local
578 count = atomic_long_read(&sem->count); in rwsem_try_write_lock()
580 bool has_handoff = !!(count & RWSEM_FLAG_HANDOFF); in rwsem_try_write_lock()
592 new = count; in rwsem_try_write_lock()
594 if (count & RWSEM_LOCK_MASK) { in rwsem_try_write_lock()
612 } while (!atomic_long_try_cmpxchg_acquire(&sem->count, &count, new)); in rwsem_try_write_lock()
658 long count = atomic_long_read(&sem->count); in rwsem_try_write_lock_unqueued() local
660 while (!(count & (RWSEM_LOCK_MASK|RWSEM_FLAG_HANDOFF))) { in rwsem_try_write_lock_unqueued()
661 if (atomic_long_try_cmpxchg_acquire(&sem->count, &count, in rwsem_try_write_lock_unqueued()
662 count | RWSEM_WRITER_LOCKED)) { in rwsem_try_write_lock_unqueued()
787 long count = atomic_long_read(&sem->count); in rwsem_rspin_threshold() local
788 int readers = count >> RWSEM_READER_SHIFT; in rwsem_rspin_threshold()
959 rwsem_down_read_slowpath(struct rw_semaphore *sem, long count, unsigned int state) in rwsem_down_read_slowpath() argument
962 long rcnt = (count >> RWSEM_READER_SHIFT); in rwsem_down_read_slowpath()
974 (rcnt > 1) && !(count & RWSEM_WRITER_LOCKED)) in rwsem_down_read_slowpath()
980 if (!(count & (RWSEM_WRITER_LOCKED | RWSEM_FLAG_HANDOFF))) { in rwsem_down_read_slowpath()
988 if ((rcnt == 1) && (count & RWSEM_FLAG_WAITERS)) { in rwsem_down_read_slowpath()
1014 if (!(atomic_long_read(&sem->count) & in rwsem_down_read_slowpath()
1035 count = atomic_long_add_return(adjustment, &sem->count); in rwsem_down_read_slowpath()
1043 if (!(count & RWSEM_LOCK_MASK)) { in rwsem_down_read_slowpath()
1047 if (wake || (!(count & RWSEM_WRITER_MASK) && in rwsem_down_read_slowpath()
1096 long count; in rwsem_down_write_slowpath() local
1128 count = atomic_long_read(&sem->count); in rwsem_down_write_slowpath()
1138 if (count & RWSEM_WRITER_MASK) in rwsem_down_write_slowpath()
1141 rwsem_mark_wake(sem, (count & RWSEM_READER_MASK) in rwsem_down_write_slowpath()
1156 atomic_long_or(RWSEM_FLAG_WAITERS, &sem->count); in rwsem_down_write_slowpath()
1283 long count; in __down_read_common() local
1286 if (!rwsem_read_trylock(sem, &count)) { in __down_read_common()
1287 if (IS_ERR(rwsem_down_read_slowpath(sem, count, state))) { in __down_read_common()
1321 tmp = atomic_long_read(&sem->count); in __down_read_trylock()
1323 if (atomic_long_try_cmpxchg_acquire(&sem->count, &tmp, in __down_read_trylock()
1376 tmp = atomic_long_add_return_release(-RWSEM_READER_BIAS, &sem->count); in __up_read()
1404 tmp = atomic_long_fetch_add_release(-RWSEM_WRITER_LOCKED, &sem->count); in __up_write()
1427 -RWSEM_WRITER_LOCKED+RWSEM_READER_BIAS, &sem->count); in __downgrade_write()
1536 int count = atomic_read(&sem->rwbase.readers); in is_rwsem_reader_owned() local
1538 return count < 0 && count != READER_BIAS; in is_rwsem_reader_owned()