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);
54 void call_srcu(struct srcu_struct *ssp, struct rcu_head *head,
56 void cleanup_srcu_struct(struct srcu_struct *ssp);
57 int __srcu_read_lock(struct srcu_struct *ssp) __acquires(ssp);
58 void __srcu_read_unlock(struct srcu_struct *ssp, int idx) __releases(ssp);
59 void synchronize_srcu(struct srcu_struct *ssp);
74 unsigned long get_state_synchronize_srcu(struct srcu_struct *ssp);
75 unsigned long start_poll_synchronize_srcu(struct srcu_struct *ssp);
76 bool poll_state_synchronize_srcu(struct srcu_struct *ssp, unsigned long cookie);
100 int __srcu_read_lock_nmisafe(struct srcu_struct *ssp) __acquires(ssp);
101 void __srcu_read_unlock_nmisafe(struct srcu_struct *ssp, int idx) __releases(ssp);
103 static inline int __srcu_read_lock_nmisafe(struct srcu_struct *ssp) in __srcu_read_lock_nmisafe() argument
105 return __srcu_read_lock(ssp); in __srcu_read_lock_nmisafe()
107 static inline void __srcu_read_unlock_nmisafe(struct srcu_struct *ssp, int idx) in __srcu_read_unlock_nmisafe() argument
109 __srcu_read_unlock(ssp, idx); in __srcu_read_unlock_nmisafe()
119 * @ssp: The srcu_struct structure to check
133 static inline int srcu_read_lock_held(const struct srcu_struct *ssp) in srcu_read_lock_held() argument
137 return lock_is_held(&ssp->dep_map); in srcu_read_lock_held()
168 static inline int srcu_read_lock_held(const struct srcu_struct *ssp) in srcu_read_lock_held() argument
184 void srcu_check_nmi_safety(struct srcu_struct *ssp, bool nmi_safe);
186 static inline void srcu_check_nmi_safety(struct srcu_struct *ssp, in srcu_check_nmi_safety() argument
194 * @ssp: pointer to the srcu_struct, which is used to check that we
203 #define srcu_dereference_check(p, ssp, c) \ argument
205 (c) || srcu_read_lock_held(ssp), __rcu)
210 * @ssp: pointer to the srcu_struct, which is used to check that we
217 #define srcu_dereference(p, ssp) srcu_dereference_check((p), (ssp), 0) argument
222 * @ssp: pointer to the srcu_struct, which is used to check that we
225 #define srcu_dereference_notrace(p, ssp) srcu_dereference_check((p), (ssp), 1) argument
229 * @ssp: srcu_struct in which to register the new reader.
244 static inline int srcu_read_lock(struct srcu_struct *ssp) __acquires(ssp) in srcu_read_lock() argument
248 srcu_check_nmi_safety(ssp, false); in srcu_read_lock()
249 retval = __srcu_read_lock(ssp); in srcu_read_lock()
250 srcu_lock_acquire(&ssp->dep_map); in srcu_read_lock()
256 * @ssp: srcu_struct in which to register the new reader.
261 static inline int srcu_read_lock_nmisafe(struct srcu_struct *ssp) __acquires(ssp) in srcu_read_lock_nmisafe() argument
265 srcu_check_nmi_safety(ssp, true); in srcu_read_lock_nmisafe()
266 retval = __srcu_read_lock_nmisafe(ssp); in srcu_read_lock_nmisafe()
267 rcu_try_lock_acquire(&ssp->dep_map); in srcu_read_lock_nmisafe()
273 srcu_read_lock_notrace(struct srcu_struct *ssp) __acquires(ssp) in srcu_read_lock_notrace() argument
277 srcu_check_nmi_safety(ssp, false); in srcu_read_lock_notrace()
278 retval = __srcu_read_lock(ssp); in srcu_read_lock_notrace()
284 * @ssp: srcu_struct in which to register the new reader.
303 static inline int srcu_down_read(struct srcu_struct *ssp) __acquires(ssp) in srcu_down_read() argument
306 srcu_check_nmi_safety(ssp, false); in srcu_down_read()
307 return __srcu_read_lock(ssp); in srcu_down_read()
312 * @ssp: srcu_struct in which to unregister the old reader.
317 static inline void srcu_read_unlock(struct srcu_struct *ssp, int idx) in srcu_read_unlock() argument
318 __releases(ssp) in srcu_read_unlock()
321 srcu_check_nmi_safety(ssp, false); in srcu_read_unlock()
322 srcu_lock_release(&ssp->dep_map); in srcu_read_unlock()
323 __srcu_read_unlock(ssp, idx); in srcu_read_unlock()
328 * @ssp: srcu_struct in which to unregister the old reader.
333 static inline void srcu_read_unlock_nmisafe(struct srcu_struct *ssp, int idx) in srcu_read_unlock_nmisafe() argument
334 __releases(ssp) in srcu_read_unlock_nmisafe()
337 srcu_check_nmi_safety(ssp, true); in srcu_read_unlock_nmisafe()
338 rcu_lock_release(&ssp->dep_map); in srcu_read_unlock_nmisafe()
339 __srcu_read_unlock_nmisafe(ssp, idx); in srcu_read_unlock_nmisafe()
344 srcu_read_unlock_notrace(struct srcu_struct *ssp, int idx) __releases(ssp) in srcu_read_unlock_notrace() argument
346 srcu_check_nmi_safety(ssp, false); in srcu_read_unlock_notrace()
347 __srcu_read_unlock(ssp, idx); in srcu_read_unlock_notrace()
352 * @ssp: srcu_struct in which to unregister the old reader.
358 static inline void srcu_up_read(struct srcu_struct *ssp, int idx) in srcu_up_read() argument
359 __releases(ssp) in srcu_up_read()
363 srcu_check_nmi_safety(ssp, false); in srcu_up_read()
364 __srcu_read_unlock(ssp, idx); in srcu_up_read()