Lines Matching full:ssp

28 int __init_srcu_struct(struct srcu_struct *ssp, const char *name,
31 #define init_srcu_struct(ssp) \ argument
35 __init_srcu_struct((ssp), #ssp, &__srcu_key); \
41 int init_srcu_struct(struct srcu_struct *ssp);
60 void call_srcu(struct srcu_struct *ssp, struct rcu_head *head,
62 void cleanup_srcu_struct(struct srcu_struct *ssp);
63 int __srcu_read_lock(struct srcu_struct *ssp) __acquires(ssp);
64 void __srcu_read_unlock(struct srcu_struct *ssp, int idx) __releases(ssp);
69 int __srcu_read_lock_lite(struct srcu_struct *ssp) __acquires(ssp);
70 void __srcu_read_unlock_lite(struct srcu_struct *ssp, int idx) __releases(ssp);
72 void synchronize_srcu(struct srcu_struct *ssp);
87 unsigned long get_state_synchronize_srcu(struct srcu_struct *ssp);
88 unsigned long start_poll_synchronize_srcu(struct srcu_struct *ssp);
89 bool poll_state_synchronize_srcu(struct srcu_struct *ssp, unsigned long cookie);
113 int __srcu_read_lock_nmisafe(struct srcu_struct *ssp) __acquires(ssp);
114 void __srcu_read_unlock_nmisafe(struct srcu_struct *ssp, int idx) __releases(ssp);
116 static inline int __srcu_read_lock_nmisafe(struct srcu_struct *ssp) in __srcu_read_lock_nmisafe() argument
118 return __srcu_read_lock(ssp); in __srcu_read_lock_nmisafe()
120 static inline void __srcu_read_unlock_nmisafe(struct srcu_struct *ssp, int idx) in __srcu_read_unlock_nmisafe() argument
122 __srcu_read_unlock(ssp, idx); in __srcu_read_unlock_nmisafe()
132 * @ssp: The srcu_struct structure to check
146 static inline int srcu_read_lock_held(const struct srcu_struct *ssp) in srcu_read_lock_held() argument
150 return lock_is_held(&ssp->dep_map); in srcu_read_lock_held()
181 static inline int srcu_read_lock_held(const struct srcu_struct *ssp) in srcu_read_lock_held() argument
196 * @ssp: pointer to the srcu_struct, which is used to check that we
205 #define srcu_dereference_check(p, ssp, c) \ argument
207 (c) || srcu_read_lock_held(ssp), __rcu)
212 * @ssp: pointer to the srcu_struct, which is used to check that we
219 #define srcu_dereference(p, ssp) srcu_dereference_check((p), (ssp), 0) argument
224 * @ssp: pointer to the srcu_struct, which is used to check that we
227 #define srcu_dereference_notrace(p, ssp) srcu_dereference_check((p), (ssp), 1) argument
231 * @ssp: srcu_struct in which to register the new reader.
250 static inline int srcu_read_lock(struct srcu_struct *ssp) __acquires(ssp) in srcu_read_lock() argument
254 srcu_check_read_flavor(ssp, SRCU_READ_FLAVOR_NORMAL); in srcu_read_lock()
255 retval = __srcu_read_lock(ssp); in srcu_read_lock()
256 srcu_lock_acquire(&ssp->dep_map); in srcu_read_lock()
262 * @ssp: srcu_struct in which to register the new reader.
277 static inline int srcu_read_lock_lite(struct srcu_struct *ssp) __acquires(ssp) in srcu_read_lock_lite() argument
281 srcu_check_read_flavor_lite(ssp); in srcu_read_lock_lite()
282 retval = __srcu_read_lock_lite(ssp); in srcu_read_lock_lite()
283 rcu_try_lock_acquire(&ssp->dep_map); in srcu_read_lock_lite()
289 * @ssp: srcu_struct in which to register the new reader.
298 static inline int srcu_read_lock_nmisafe(struct srcu_struct *ssp) __acquires(ssp) in srcu_read_lock_nmisafe() argument
302 srcu_check_read_flavor(ssp, SRCU_READ_FLAVOR_NMI); in srcu_read_lock_nmisafe()
303 retval = __srcu_read_lock_nmisafe(ssp); in srcu_read_lock_nmisafe()
304 rcu_try_lock_acquire(&ssp->dep_map); in srcu_read_lock_nmisafe()
310 srcu_read_lock_notrace(struct srcu_struct *ssp) __acquires(ssp) in srcu_read_lock_notrace() argument
314 srcu_check_read_flavor(ssp, SRCU_READ_FLAVOR_NORMAL); in srcu_read_lock_notrace()
315 retval = __srcu_read_lock(ssp); in srcu_read_lock_notrace()
321 * @ssp: srcu_struct in which to register the new reader.
340 static inline int srcu_down_read(struct srcu_struct *ssp) __acquires(ssp) in srcu_down_read() argument
343 srcu_check_read_flavor(ssp, SRCU_READ_FLAVOR_NORMAL); in srcu_down_read()
344 return __srcu_read_lock(ssp); in srcu_down_read()
349 * @ssp: srcu_struct in which to unregister the old reader.
354 static inline void srcu_read_unlock(struct srcu_struct *ssp, int idx) in srcu_read_unlock() argument
355 __releases(ssp) in srcu_read_unlock()
358 srcu_check_read_flavor(ssp, SRCU_READ_FLAVOR_NORMAL); in srcu_read_unlock()
359 srcu_lock_release(&ssp->dep_map); in srcu_read_unlock()
360 __srcu_read_unlock(ssp, idx); in srcu_read_unlock()
365 * @ssp: srcu_struct in which to unregister the old reader.
370 static inline void srcu_read_unlock_lite(struct srcu_struct *ssp, int idx) in srcu_read_unlock_lite() argument
371 __releases(ssp) in srcu_read_unlock_lite()
374 srcu_check_read_flavor(ssp, SRCU_READ_FLAVOR_LITE); in srcu_read_unlock_lite()
375 srcu_lock_release(&ssp->dep_map); in srcu_read_unlock_lite()
376 __srcu_read_unlock_lite(ssp, idx); in srcu_read_unlock_lite()
381 * @ssp: srcu_struct in which to unregister the old reader.
386 static inline void srcu_read_unlock_nmisafe(struct srcu_struct *ssp, int idx) in srcu_read_unlock_nmisafe() argument
387 __releases(ssp) in srcu_read_unlock_nmisafe()
390 srcu_check_read_flavor(ssp, SRCU_READ_FLAVOR_NMI); in srcu_read_unlock_nmisafe()
391 rcu_lock_release(&ssp->dep_map); in srcu_read_unlock_nmisafe()
392 __srcu_read_unlock_nmisafe(ssp, idx); in srcu_read_unlock_nmisafe()
397 srcu_read_unlock_notrace(struct srcu_struct *ssp, int idx) __releases(ssp) in srcu_read_unlock_notrace() argument
399 srcu_check_read_flavor(ssp, SRCU_READ_FLAVOR_NORMAL); in srcu_read_unlock_notrace()
400 __srcu_read_unlock(ssp, idx); in srcu_read_unlock_notrace()
405 * @ssp: srcu_struct in which to unregister the old reader.
411 static inline void srcu_up_read(struct srcu_struct *ssp, int idx) in srcu_up_read() argument
412 __releases(ssp) in srcu_up_read()
416 srcu_check_read_flavor(ssp, SRCU_READ_FLAVOR_NORMAL); in srcu_up_read()
417 __srcu_read_unlock(ssp, idx); in srcu_up_read()