Lines Matching refs:nh
121 int atomic_notifier_chain_register(struct atomic_notifier_head *nh, in atomic_notifier_chain_register() argument
127 spin_lock_irqsave(&nh->lock, flags); in atomic_notifier_chain_register()
128 ret = notifier_chain_register(&nh->head, n); in atomic_notifier_chain_register()
129 spin_unlock_irqrestore(&nh->lock, flags); in atomic_notifier_chain_register()
143 int atomic_notifier_chain_unregister(struct atomic_notifier_head *nh, in atomic_notifier_chain_unregister() argument
149 spin_lock_irqsave(&nh->lock, flags); in atomic_notifier_chain_unregister()
150 ret = notifier_chain_unregister(&nh->head, n); in atomic_notifier_chain_unregister()
151 spin_unlock_irqrestore(&nh->lock, flags); in atomic_notifier_chain_unregister()
176 int __atomic_notifier_call_chain(struct atomic_notifier_head *nh, in __atomic_notifier_call_chain() argument
183 ret = notifier_call_chain(&nh->head, val, v, nr_to_call, nr_calls); in __atomic_notifier_call_chain()
190 int atomic_notifier_call_chain(struct atomic_notifier_head *nh, in atomic_notifier_call_chain() argument
193 return __atomic_notifier_call_chain(nh, val, v, -1, NULL); in atomic_notifier_call_chain()
213 int blocking_notifier_chain_register(struct blocking_notifier_head *nh, in blocking_notifier_chain_register() argument
224 return notifier_chain_register(&nh->head, n); in blocking_notifier_chain_register()
226 down_write(&nh->rwsem); in blocking_notifier_chain_register()
227 ret = notifier_chain_register(&nh->head, n); in blocking_notifier_chain_register()
228 up_write(&nh->rwsem); in blocking_notifier_chain_register()
244 int blocking_notifier_chain_cond_register(struct blocking_notifier_head *nh, in blocking_notifier_chain_cond_register() argument
249 down_write(&nh->rwsem); in blocking_notifier_chain_cond_register()
250 ret = notifier_chain_cond_register(&nh->head, n); in blocking_notifier_chain_cond_register()
251 up_write(&nh->rwsem); in blocking_notifier_chain_cond_register()
266 int blocking_notifier_chain_unregister(struct blocking_notifier_head *nh, in blocking_notifier_chain_unregister() argument
277 return notifier_chain_unregister(&nh->head, n); in blocking_notifier_chain_unregister()
279 down_write(&nh->rwsem); in blocking_notifier_chain_unregister()
280 ret = notifier_chain_unregister(&nh->head, n); in blocking_notifier_chain_unregister()
281 up_write(&nh->rwsem); in blocking_notifier_chain_unregister()
304 int __blocking_notifier_call_chain(struct blocking_notifier_head *nh, in __blocking_notifier_call_chain() argument
315 if (rcu_access_pointer(nh->head)) { in __blocking_notifier_call_chain()
316 down_read(&nh->rwsem); in __blocking_notifier_call_chain()
317 ret = notifier_call_chain(&nh->head, val, v, nr_to_call, in __blocking_notifier_call_chain()
319 up_read(&nh->rwsem); in __blocking_notifier_call_chain()
325 int blocking_notifier_call_chain(struct blocking_notifier_head *nh, in blocking_notifier_call_chain() argument
328 return __blocking_notifier_call_chain(nh, val, v, -1, NULL); in blocking_notifier_call_chain()
347 int raw_notifier_chain_register(struct raw_notifier_head *nh, in raw_notifier_chain_register() argument
350 return notifier_chain_register(&nh->head, n); in raw_notifier_chain_register()
364 int raw_notifier_chain_unregister(struct raw_notifier_head *nh, in raw_notifier_chain_unregister() argument
367 return notifier_chain_unregister(&nh->head, n); in raw_notifier_chain_unregister()
390 int __raw_notifier_call_chain(struct raw_notifier_head *nh, in __raw_notifier_call_chain() argument
394 return notifier_call_chain(&nh->head, val, v, nr_to_call, nr_calls); in __raw_notifier_call_chain()
398 int raw_notifier_call_chain(struct raw_notifier_head *nh, in raw_notifier_call_chain() argument
401 return __raw_notifier_call_chain(nh, val, v, -1, NULL); in raw_notifier_call_chain()
421 int srcu_notifier_chain_register(struct srcu_notifier_head *nh, in srcu_notifier_chain_register() argument
432 return notifier_chain_register(&nh->head, n); in srcu_notifier_chain_register()
434 mutex_lock(&nh->mutex); in srcu_notifier_chain_register()
435 ret = notifier_chain_register(&nh->head, n); in srcu_notifier_chain_register()
436 mutex_unlock(&nh->mutex); in srcu_notifier_chain_register()
451 int srcu_notifier_chain_unregister(struct srcu_notifier_head *nh, in srcu_notifier_chain_unregister() argument
462 return notifier_chain_unregister(&nh->head, n); in srcu_notifier_chain_unregister()
464 mutex_lock(&nh->mutex); in srcu_notifier_chain_unregister()
465 ret = notifier_chain_unregister(&nh->head, n); in srcu_notifier_chain_unregister()
466 mutex_unlock(&nh->mutex); in srcu_notifier_chain_unregister()
467 synchronize_srcu(&nh->srcu); in srcu_notifier_chain_unregister()
490 int __srcu_notifier_call_chain(struct srcu_notifier_head *nh, in __srcu_notifier_call_chain() argument
497 idx = srcu_read_lock(&nh->srcu); in __srcu_notifier_call_chain()
498 ret = notifier_call_chain(&nh->head, val, v, nr_to_call, nr_calls); in __srcu_notifier_call_chain()
499 srcu_read_unlock(&nh->srcu, idx); in __srcu_notifier_call_chain()
504 int srcu_notifier_call_chain(struct srcu_notifier_head *nh, in srcu_notifier_call_chain() argument
507 return __srcu_notifier_call_chain(nh, val, v, -1, NULL); in srcu_notifier_call_chain()
523 void srcu_init_notifier_head(struct srcu_notifier_head *nh) in srcu_init_notifier_head() argument
525 mutex_init(&nh->mutex); in srcu_init_notifier_head()
526 if (init_srcu_struct(&nh->srcu) < 0) in srcu_init_notifier_head()
528 nh->head = NULL; in srcu_init_notifier_head()