Lines Matching refs:sem
21 void __sched down_read(struct rw_semaphore *sem) in down_read() argument
24 rwsem_acquire_read(&sem->dep_map, 0, 0, _RET_IP_); in down_read()
26 LOCK_CONTENDED(sem, __down_read_trylock, __down_read); in down_read()
27 rwsem_set_reader_owned(sem); in down_read()
32 int __sched down_read_killable(struct rw_semaphore *sem) in down_read_killable() argument
35 rwsem_acquire_read(&sem->dep_map, 0, 0, _RET_IP_); in down_read_killable()
37 if (LOCK_CONTENDED_RETURN(sem, __down_read_trylock, __down_read_killable)) { in down_read_killable()
38 rwsem_release(&sem->dep_map, 1, _RET_IP_); in down_read_killable()
42 rwsem_set_reader_owned(sem); in down_read_killable()
51 int down_read_trylock(struct rw_semaphore *sem) in down_read_trylock() argument
53 int ret = __down_read_trylock(sem); in down_read_trylock()
56 rwsem_acquire_read(&sem->dep_map, 0, 1, _RET_IP_); in down_read_trylock()
57 rwsem_set_reader_owned(sem); in down_read_trylock()
67 void __sched down_write(struct rw_semaphore *sem) in down_write() argument
70 rwsem_acquire(&sem->dep_map, 0, 0, _RET_IP_); in down_write()
72 LOCK_CONTENDED(sem, __down_write_trylock, __down_write); in down_write()
73 rwsem_set_owner(sem); in down_write()
81 int __sched down_write_killable(struct rw_semaphore *sem) in down_write_killable() argument
84 rwsem_acquire(&sem->dep_map, 0, 0, _RET_IP_); in down_write_killable()
86 if (LOCK_CONTENDED_RETURN(sem, __down_write_trylock, __down_write_killable)) { in down_write_killable()
87 rwsem_release(&sem->dep_map, 1, _RET_IP_); in down_write_killable()
91 rwsem_set_owner(sem); in down_write_killable()
100 int down_write_trylock(struct rw_semaphore *sem) in down_write_trylock() argument
102 int ret = __down_write_trylock(sem); in down_write_trylock()
105 rwsem_acquire(&sem->dep_map, 0, 1, _RET_IP_); in down_write_trylock()
106 rwsem_set_owner(sem); in down_write_trylock()
117 void up_read(struct rw_semaphore *sem) in up_read() argument
119 rwsem_release(&sem->dep_map, 1, _RET_IP_); in up_read()
120 DEBUG_RWSEMS_WARN_ON(sem->owner != RWSEM_READER_OWNED); in up_read()
122 __up_read(sem); in up_read()
130 void up_write(struct rw_semaphore *sem) in up_write() argument
132 rwsem_release(&sem->dep_map, 1, _RET_IP_); in up_write()
133 DEBUG_RWSEMS_WARN_ON(sem->owner != current); in up_write()
135 rwsem_clear_owner(sem); in up_write()
136 __up_write(sem); in up_write()
144 void downgrade_write(struct rw_semaphore *sem) in downgrade_write() argument
146 lock_downgrade(&sem->dep_map, _RET_IP_); in downgrade_write()
147 DEBUG_RWSEMS_WARN_ON(sem->owner != current); in downgrade_write()
149 rwsem_set_reader_owned(sem); in downgrade_write()
150 __downgrade_write(sem); in downgrade_write()
157 void down_read_nested(struct rw_semaphore *sem, int subclass) in down_read_nested() argument
160 rwsem_acquire_read(&sem->dep_map, subclass, 0, _RET_IP_); in down_read_nested()
162 LOCK_CONTENDED(sem, __down_read_trylock, __down_read); in down_read_nested()
163 rwsem_set_reader_owned(sem); in down_read_nested()
168 void _down_write_nest_lock(struct rw_semaphore *sem, struct lockdep_map *nest) in _down_write_nest_lock() argument
171 rwsem_acquire_nest(&sem->dep_map, 0, 0, nest, _RET_IP_); in _down_write_nest_lock()
173 LOCK_CONTENDED(sem, __down_write_trylock, __down_write); in _down_write_nest_lock()
174 rwsem_set_owner(sem); in _down_write_nest_lock()
179 void down_read_non_owner(struct rw_semaphore *sem) in down_read_non_owner() argument
183 __down_read(sem); in down_read_non_owner()
184 rwsem_set_reader_owned(sem); in down_read_non_owner()
189 void down_write_nested(struct rw_semaphore *sem, int subclass) in down_write_nested() argument
192 rwsem_acquire(&sem->dep_map, subclass, 0, _RET_IP_); in down_write_nested()
194 LOCK_CONTENDED(sem, __down_write_trylock, __down_write); in down_write_nested()
195 rwsem_set_owner(sem); in down_write_nested()
200 int __sched down_write_killable_nested(struct rw_semaphore *sem, int subclass) in down_write_killable_nested() argument
203 rwsem_acquire(&sem->dep_map, subclass, 0, _RET_IP_); in down_write_killable_nested()
205 if (LOCK_CONTENDED_RETURN(sem, __down_write_trylock, __down_write_killable)) { in down_write_killable_nested()
206 rwsem_release(&sem->dep_map, 1, _RET_IP_); in down_write_killable_nested()
210 rwsem_set_owner(sem); in down_write_killable_nested()
216 void up_read_non_owner(struct rw_semaphore *sem) in up_read_non_owner() argument
218 DEBUG_RWSEMS_WARN_ON(sem->owner != RWSEM_READER_OWNED); in up_read_non_owner()
219 __up_read(sem); in up_read_non_owner()