• Home
  • Raw
  • Download

Lines Matching refs:sem

57 static inline void percpu_down_read(struct percpu_rw_semaphore *sem)  in percpu_down_read()  argument
61 rwsem_acquire_read(&sem->dep_map, 0, 0, _RET_IP_); in percpu_down_read()
72 if (likely(rcu_sync_is_idle(&sem->rss))) in percpu_down_read()
73 this_cpu_inc(*sem->read_count); in percpu_down_read()
75 __percpu_down_read(sem, false); /* Unconditional memory barrier */ in percpu_down_read()
84 static inline bool percpu_down_read_trylock(struct percpu_rw_semaphore *sem) in percpu_down_read_trylock() argument
92 if (likely(rcu_sync_is_idle(&sem->rss))) in percpu_down_read_trylock()
93 this_cpu_inc(*sem->read_count); in percpu_down_read_trylock()
95 ret = __percpu_down_read(sem, true); /* Unconditional memory barrier */ in percpu_down_read_trylock()
104 rwsem_acquire_read(&sem->dep_map, 0, 1, _RET_IP_); in percpu_down_read_trylock()
110 static inline void percpu_up_read(struct percpu_rw_semaphore *sem) in percpu_up_read() argument
112 rwsem_release(&sem->dep_map, _RET_IP_); in percpu_up_read()
118 if (likely(rcu_sync_is_idle(&sem->rss))) { in percpu_up_read()
119 this_cpu_dec(*sem->read_count); in percpu_up_read()
131 this_cpu_dec(*sem->read_count); in percpu_up_read()
132 rcuwait_wake_up(&sem->writer); in percpu_up_read()
148 extern void percpu_rwsem_async_destroy(struct percpu_rw_semaphore *sem);
150 #define percpu_init_rwsem(sem) \ argument
153 __percpu_init_rwsem(sem, #sem, &rwsem_key); \
156 #define percpu_rwsem_is_held(sem) lockdep_is_held(sem) argument
157 #define percpu_rwsem_assert_held(sem) lockdep_assert_held(sem) argument
159 static inline void percpu_rwsem_release(struct percpu_rw_semaphore *sem, in percpu_rwsem_release() argument
162 lock_release(&sem->dep_map, ip); in percpu_rwsem_release()
165 static inline void percpu_rwsem_acquire(struct percpu_rw_semaphore *sem, in percpu_rwsem_acquire() argument
168 lock_acquire(&sem->dep_map, 0, 1, read, 1, NULL, ip); in percpu_rwsem_acquire()