Lines Matching refs:sem

47 static inline void percpu_down_read(struct percpu_rw_semaphore *sem)  in percpu_down_read()  argument
51 rwsem_acquire_read(&sem->dep_map, 0, 0, _RET_IP_); in percpu_down_read()
62 if (likely(rcu_sync_is_idle(&sem->rss))) in percpu_down_read()
63 this_cpu_inc(*sem->read_count); in percpu_down_read()
65 __percpu_down_read(sem, false); /* Unconditional memory barrier */ in percpu_down_read()
73 static inline bool percpu_down_read_trylock(struct percpu_rw_semaphore *sem) in percpu_down_read_trylock() argument
81 if (likely(rcu_sync_is_idle(&sem->rss))) in percpu_down_read_trylock()
82 this_cpu_inc(*sem->read_count); in percpu_down_read_trylock()
84 ret = __percpu_down_read(sem, true); /* Unconditional memory barrier */ in percpu_down_read_trylock()
92 rwsem_acquire_read(&sem->dep_map, 0, 1, _RET_IP_); in percpu_down_read_trylock()
97 static inline void percpu_up_read(struct percpu_rw_semaphore *sem) in percpu_up_read() argument
99 rwsem_release(&sem->dep_map, _RET_IP_); in percpu_up_read()
105 if (likely(rcu_sync_is_idle(&sem->rss))) { in percpu_up_read()
106 this_cpu_dec(*sem->read_count); in percpu_up_read()
118 this_cpu_dec(*sem->read_count); in percpu_up_read()
119 rcuwait_wake_up(&sem->writer); in percpu_up_read()
128 static inline bool percpu_is_write_locked(struct percpu_rw_semaphore *sem) in percpu_is_write_locked() argument
130 return atomic_read(&sem->block); in percpu_is_write_locked()
138 #define percpu_init_rwsem(sem) \ argument
141 __percpu_init_rwsem(sem, #sem, &rwsem_key); \
144 #define percpu_rwsem_is_held(sem) lockdep_is_held(sem) argument
145 #define percpu_rwsem_assert_held(sem) lockdep_assert_held(sem) argument
147 static inline void percpu_rwsem_release(struct percpu_rw_semaphore *sem, in percpu_rwsem_release() argument
150 lock_release(&sem->dep_map, ip); in percpu_rwsem_release()
153 static inline void percpu_rwsem_acquire(struct percpu_rw_semaphore *sem, in percpu_rwsem_acquire() argument
156 lock_acquire(&sem->dep_map, 0, 1, read, 1, NULL, ip); in percpu_rwsem_acquire()