Lines Matching refs:nh
139 int atomic_notifier_chain_register(struct atomic_notifier_head *nh, in atomic_notifier_chain_register() argument
145 spin_lock_irqsave(&nh->lock, flags); in atomic_notifier_chain_register()
146 ret = notifier_chain_register(&nh->head, n); in atomic_notifier_chain_register()
147 spin_unlock_irqrestore(&nh->lock, flags); in atomic_notifier_chain_register()
161 int atomic_notifier_chain_unregister(struct atomic_notifier_head *nh, in atomic_notifier_chain_unregister() argument
167 spin_lock_irqsave(&nh->lock, flags); in atomic_notifier_chain_unregister()
168 ret = notifier_chain_unregister(&nh->head, n); in atomic_notifier_chain_unregister()
169 spin_unlock_irqrestore(&nh->lock, flags); in atomic_notifier_chain_unregister()
175 int atomic_notifier_call_chain_robust(struct atomic_notifier_head *nh, in atomic_notifier_call_chain_robust() argument
185 spin_lock_irqsave(&nh->lock, flags); in atomic_notifier_call_chain_robust()
186 ret = notifier_call_chain_robust(&nh->head, val_up, val_down, v); in atomic_notifier_call_chain_robust()
187 spin_unlock_irqrestore(&nh->lock, flags); in atomic_notifier_call_chain_robust()
211 int atomic_notifier_call_chain(struct atomic_notifier_head *nh, in atomic_notifier_call_chain() argument
217 ret = notifier_call_chain(&nh->head, val, v, -1, NULL); in atomic_notifier_call_chain()
240 int blocking_notifier_chain_register(struct blocking_notifier_head *nh, in blocking_notifier_chain_register() argument
251 return notifier_chain_register(&nh->head, n); in blocking_notifier_chain_register()
253 down_write(&nh->rwsem); in blocking_notifier_chain_register()
254 ret = notifier_chain_register(&nh->head, n); in blocking_notifier_chain_register()
255 up_write(&nh->rwsem); in blocking_notifier_chain_register()
270 int blocking_notifier_chain_unregister(struct blocking_notifier_head *nh, in blocking_notifier_chain_unregister() argument
281 return notifier_chain_unregister(&nh->head, n); in blocking_notifier_chain_unregister()
283 down_write(&nh->rwsem); in blocking_notifier_chain_unregister()
284 ret = notifier_chain_unregister(&nh->head, n); in blocking_notifier_chain_unregister()
285 up_write(&nh->rwsem); in blocking_notifier_chain_unregister()
290 int blocking_notifier_call_chain_robust(struct blocking_notifier_head *nh, in blocking_notifier_call_chain_robust() argument
300 if (rcu_access_pointer(nh->head)) { in blocking_notifier_call_chain_robust()
301 down_read(&nh->rwsem); in blocking_notifier_call_chain_robust()
302 ret = notifier_call_chain_robust(&nh->head, val_up, val_down, v); in blocking_notifier_call_chain_robust()
303 up_read(&nh->rwsem); in blocking_notifier_call_chain_robust()
325 int blocking_notifier_call_chain(struct blocking_notifier_head *nh, in blocking_notifier_call_chain() argument
335 if (rcu_access_pointer(nh->head)) { in blocking_notifier_call_chain()
336 down_read(&nh->rwsem); in blocking_notifier_call_chain()
337 ret = notifier_call_chain(&nh->head, val, v, -1, NULL); in blocking_notifier_call_chain()
338 up_read(&nh->rwsem); in blocking_notifier_call_chain()
359 int raw_notifier_chain_register(struct raw_notifier_head *nh, in raw_notifier_chain_register() argument
362 return notifier_chain_register(&nh->head, n); in raw_notifier_chain_register()
376 int raw_notifier_chain_unregister(struct raw_notifier_head *nh, in raw_notifier_chain_unregister() argument
379 return notifier_chain_unregister(&nh->head, n); in raw_notifier_chain_unregister()
383 int raw_notifier_call_chain_robust(struct raw_notifier_head *nh, in raw_notifier_call_chain_robust() argument
386 return notifier_call_chain_robust(&nh->head, val_up, val_down, v); in raw_notifier_call_chain_robust()
407 int raw_notifier_call_chain(struct raw_notifier_head *nh, in raw_notifier_call_chain() argument
410 return notifier_call_chain(&nh->head, val, v, -1, NULL); in raw_notifier_call_chain()
430 int srcu_notifier_chain_register(struct srcu_notifier_head *nh, in srcu_notifier_chain_register() argument
441 return notifier_chain_register(&nh->head, n); in srcu_notifier_chain_register()
443 mutex_lock(&nh->mutex); in srcu_notifier_chain_register()
444 ret = notifier_chain_register(&nh->head, n); in srcu_notifier_chain_register()
445 mutex_unlock(&nh->mutex); in srcu_notifier_chain_register()
460 int srcu_notifier_chain_unregister(struct srcu_notifier_head *nh, in srcu_notifier_chain_unregister() argument
471 return notifier_chain_unregister(&nh->head, n); in srcu_notifier_chain_unregister()
473 mutex_lock(&nh->mutex); in srcu_notifier_chain_unregister()
474 ret = notifier_chain_unregister(&nh->head, n); in srcu_notifier_chain_unregister()
475 mutex_unlock(&nh->mutex); in srcu_notifier_chain_unregister()
476 synchronize_srcu(&nh->srcu); in srcu_notifier_chain_unregister()
497 int srcu_notifier_call_chain(struct srcu_notifier_head *nh, in srcu_notifier_call_chain() argument
503 idx = srcu_read_lock(&nh->srcu); in srcu_notifier_call_chain()
504 ret = notifier_call_chain(&nh->head, val, v, -1, NULL); in srcu_notifier_call_chain()
505 srcu_read_unlock(&nh->srcu, idx); in srcu_notifier_call_chain()
522 void srcu_init_notifier_head(struct srcu_notifier_head *nh) in srcu_init_notifier_head() argument
524 mutex_init(&nh->mutex); in srcu_init_notifier_head()
525 if (init_srcu_struct(&nh->srcu) < 0) in srcu_init_notifier_head()
527 nh->head = NULL; in srcu_init_notifier_head()