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);
56 void __srcu_read_unlock(struct srcu_struct *ssp, int idx) __releases(ssp);
66 void call_srcu(struct srcu_struct *ssp, struct rcu_head *head,
68 void cleanup_srcu_struct(struct srcu_struct *ssp);
69 void synchronize_srcu(struct srcu_struct *ssp);
84 unsigned long get_state_synchronize_srcu(struct srcu_struct *ssp);
85 unsigned long start_poll_synchronize_srcu(struct srcu_struct *ssp);
86 bool poll_state_synchronize_srcu(struct srcu_struct *ssp, unsigned long cookie);
110 int __srcu_read_lock_nmisafe(struct srcu_struct *ssp) __acquires(ssp);
111 void __srcu_read_unlock_nmisafe(struct srcu_struct *ssp, int idx) __releases(ssp);
113 static inline int __srcu_read_lock_nmisafe(struct srcu_struct *ssp) in __srcu_read_lock_nmisafe() argument
115 return __srcu_read_lock(ssp); in __srcu_read_lock_nmisafe()
117 static inline void __srcu_read_unlock_nmisafe(struct srcu_struct *ssp, int idx) in __srcu_read_unlock_nmisafe() argument
119 __srcu_read_unlock(ssp, idx); in __srcu_read_unlock_nmisafe()
129 * @ssp: The srcu_struct structure to check
143 static inline int srcu_read_lock_held(const struct srcu_struct *ssp) in srcu_read_lock_held() argument
147 return lock_is_held(&ssp->dep_map); in srcu_read_lock_held()
178 static inline int srcu_read_lock_held(const struct srcu_struct *ssp) in srcu_read_lock_held() argument
193 * @ssp: pointer to the srcu_struct, which is used to check that we
202 #define srcu_dereference_check(p, ssp, c) \ argument
204 (c) || srcu_read_lock_held(ssp), __rcu)
209 * @ssp: pointer to the srcu_struct, which is used to check that we
216 #define srcu_dereference(p, ssp) srcu_dereference_check((p), (ssp), 0) argument
221 * @ssp: pointer to the srcu_struct, which is used to check that we
224 #define srcu_dereference_notrace(p, ssp) srcu_dereference_check((p), (ssp), 1) argument
228 * @ssp: srcu_struct in which to register the new reader.
247 static inline int srcu_read_lock(struct srcu_struct *ssp) __acquires(ssp) in srcu_read_lock() argument
251 srcu_check_read_flavor(ssp, SRCU_READ_FLAVOR_NORMAL); in srcu_read_lock()
252 retval = __srcu_read_lock(ssp); in srcu_read_lock()
253 srcu_lock_acquire(&ssp->dep_map); in srcu_read_lock()
259 * @ssp: srcu_struct in which to register the new reader.
274 static inline struct srcu_ctr __percpu *srcu_read_lock_fast(struct srcu_struct *ssp) __acquires(ssp) in srcu_read_lock_fast() argument
278 srcu_check_read_flavor_force(ssp, SRCU_READ_FLAVOR_FAST); in srcu_read_lock_fast()
279 retval = __srcu_read_lock_fast(ssp); in srcu_read_lock_fast()
280 rcu_try_lock_acquire(&ssp->dep_map); in srcu_read_lock_fast()
286 * @ssp: srcu_struct in which to register the new reader.
295 static inline struct srcu_ctr __percpu *srcu_down_read_fast(struct srcu_struct *ssp) __acquires(ssp) in srcu_down_read_fast() argument
298 srcu_check_read_flavor_force(ssp, SRCU_READ_FLAVOR_FAST); in srcu_down_read_fast()
299 return __srcu_read_lock_fast(ssp); in srcu_down_read_fast()
304 * @ssp: srcu_struct in which to register the new reader.
319 static inline int srcu_read_lock_lite(struct srcu_struct *ssp) __acquires(ssp) in srcu_read_lock_lite() argument
323 srcu_check_read_flavor_force(ssp, SRCU_READ_FLAVOR_LITE); in srcu_read_lock_lite()
324 retval = __srcu_read_lock_lite(ssp); in srcu_read_lock_lite()
325 rcu_try_lock_acquire(&ssp->dep_map); in srcu_read_lock_lite()
331 * @ssp: srcu_struct in which to register the new reader.
340 static inline int srcu_read_lock_nmisafe(struct srcu_struct *ssp) __acquires(ssp) in srcu_read_lock_nmisafe() argument
344 srcu_check_read_flavor(ssp, SRCU_READ_FLAVOR_NMI); in srcu_read_lock_nmisafe()
345 retval = __srcu_read_lock_nmisafe(ssp); in srcu_read_lock_nmisafe()
346 rcu_try_lock_acquire(&ssp->dep_map); in srcu_read_lock_nmisafe()
352 srcu_read_lock_notrace(struct srcu_struct *ssp) __acquires(ssp) in srcu_read_lock_notrace() argument
356 srcu_check_read_flavor(ssp, SRCU_READ_FLAVOR_NORMAL); in srcu_read_lock_notrace()
357 retval = __srcu_read_lock(ssp); in srcu_read_lock_notrace()
363 * @ssp: srcu_struct in which to register the new reader.
383 static inline int srcu_down_read(struct srcu_struct *ssp) __acquires(ssp) in srcu_down_read() argument
386 srcu_check_read_flavor(ssp, SRCU_READ_FLAVOR_NORMAL); in srcu_down_read()
387 return __srcu_read_lock(ssp); in srcu_down_read()
392 * @ssp: srcu_struct in which to unregister the old reader.
397 static inline void srcu_read_unlock(struct srcu_struct *ssp, int idx) in srcu_read_unlock() argument
398 __releases(ssp) in srcu_read_unlock()
401 srcu_check_read_flavor(ssp, SRCU_READ_FLAVOR_NORMAL); in srcu_read_unlock()
402 srcu_lock_release(&ssp->dep_map); in srcu_read_unlock()
403 __srcu_read_unlock(ssp, idx); in srcu_read_unlock()
408 * @ssp: srcu_struct in which to unregister the old reader.
413 static inline void srcu_read_unlock_fast(struct srcu_struct *ssp, struct srcu_ctr __percpu *scp) in srcu_read_unlock_fast() argument
414 __releases(ssp) in srcu_read_unlock_fast()
416 srcu_check_read_flavor(ssp, SRCU_READ_FLAVOR_FAST); in srcu_read_unlock_fast()
417 srcu_lock_release(&ssp->dep_map); in srcu_read_unlock_fast()
418 __srcu_read_unlock_fast(ssp, scp); in srcu_read_unlock_fast()
423 * @ssp: srcu_struct in which to unregister the old reader.
429 static inline void srcu_up_read_fast(struct srcu_struct *ssp, struct srcu_ctr __percpu *scp) in srcu_up_read_fast() argument
430 __releases(ssp) in srcu_up_read_fast()
433 srcu_check_read_flavor(ssp, SRCU_READ_FLAVOR_FAST); in srcu_up_read_fast()
434 __srcu_read_unlock_fast(ssp, scp); in srcu_up_read_fast()
439 * @ssp: srcu_struct in which to unregister the old reader.
444 static inline void srcu_read_unlock_lite(struct srcu_struct *ssp, int idx) in srcu_read_unlock_lite() argument
445 __releases(ssp) in srcu_read_unlock_lite()
448 srcu_check_read_flavor(ssp, SRCU_READ_FLAVOR_LITE); in srcu_read_unlock_lite()
449 srcu_lock_release(&ssp->dep_map); in srcu_read_unlock_lite()
450 __srcu_read_unlock_lite(ssp, idx); in srcu_read_unlock_lite()
455 * @ssp: srcu_struct in which to unregister the old reader.
460 static inline void srcu_read_unlock_nmisafe(struct srcu_struct *ssp, int idx) in srcu_read_unlock_nmisafe() argument
461 __releases(ssp) in srcu_read_unlock_nmisafe()
464 srcu_check_read_flavor(ssp, SRCU_READ_FLAVOR_NMI); in srcu_read_unlock_nmisafe()
465 rcu_lock_release(&ssp->dep_map); in srcu_read_unlock_nmisafe()
466 __srcu_read_unlock_nmisafe(ssp, idx); in srcu_read_unlock_nmisafe()
471 srcu_read_unlock_notrace(struct srcu_struct *ssp, int idx) __releases(ssp) in srcu_read_unlock_notrace() argument
473 srcu_check_read_flavor(ssp, SRCU_READ_FLAVOR_NORMAL); in srcu_read_unlock_notrace()
474 __srcu_read_unlock(ssp, idx); in srcu_read_unlock_notrace()
479 * @ssp: srcu_struct in which to unregister the old reader.
485 static inline void srcu_up_read(struct srcu_struct *ssp, int idx) in srcu_up_read() argument
486 __releases(ssp) in srcu_up_read()
490 srcu_check_read_flavor(ssp, SRCU_READ_FLAVOR_NORMAL); in srcu_up_read()
491 __srcu_read_unlock(ssp, idx); in srcu_up_read()