From: Gautham R Shenoy * Corrects the type of nr_calls to int * from unsigned int * in notifier_call_chain and it's subsequent callers. * Converts comments of notifier_call_chain to be compliant with kernel-docs standards. * Reverts the changes made to the comments of other *_notifier_call_chain. * Adds parameter names to a few functions prototypes in include/linux/notifier.h . Cc: Randy Dunlap Signed-off-by: Gautham R Shenoy Signed-off-by: Andrew Morton --- include/linux/notifier.h | 58 ++++++++++++++++++------------------- kernel/sys.c | 24 ++++++--------- 2 files changed, 39 insertions(+), 43 deletions(-) diff -puN include/linux/notifier.h~extend-notifier_call_chain-to-count-nr_calls-made-fixes include/linux/notifier.h --- a/include/linux/notifier.h~extend-notifier_call_chain-to-count-nr_calls-made-fixes +++ a/include/linux/notifier.h @@ -112,40 +112,40 @@ extern void srcu_init_notifier_head(stru #ifdef __KERNEL__ -extern int atomic_notifier_chain_register(struct atomic_notifier_head *, - struct notifier_block *); -extern int blocking_notifier_chain_register(struct blocking_notifier_head *, - struct notifier_block *); -extern int raw_notifier_chain_register(struct raw_notifier_head *, - struct notifier_block *); -extern int srcu_notifier_chain_register(struct srcu_notifier_head *, - struct notifier_block *); - -extern int atomic_notifier_chain_unregister(struct atomic_notifier_head *, - struct notifier_block *); -extern int blocking_notifier_chain_unregister(struct blocking_notifier_head *, - struct notifier_block *); -extern int raw_notifier_chain_unregister(struct raw_notifier_head *, - struct notifier_block *); -extern int srcu_notifier_chain_unregister(struct srcu_notifier_head *, - struct notifier_block *); +extern int atomic_notifier_chain_register(struct atomic_notifier_head *nh, + struct notifier_block *nb); +extern int blocking_notifier_chain_register(struct blocking_notifier_head *nh, + struct notifier_block *nb); +extern int raw_notifier_chain_register(struct raw_notifier_head *nh, + struct notifier_block *nb); +extern int srcu_notifier_chain_register(struct srcu_notifier_head *nh, + struct notifier_block *nb); + +extern int atomic_notifier_chain_unregister(struct atomic_notifier_head *nh, + struct notifier_block *nb); +extern int blocking_notifier_chain_unregister(struct blocking_notifier_head *nh, + struct notifier_block *nb); +extern int raw_notifier_chain_unregister(struct raw_notifier_head *nh, + struct notifier_block *nb); +extern int srcu_notifier_chain_unregister(struct srcu_notifier_head *nh, + struct notifier_block *nb); -extern int atomic_notifier_call_chain(struct atomic_notifier_head *, +extern int atomic_notifier_call_chain(struct atomic_notifier_head *nh, unsigned long val, void *v); -extern int __atomic_notifier_call_chain(struct atomic_notifier_head *, - unsigned long val, void *v, int nr_to_call, unsigned int *nr_calls); -extern int blocking_notifier_call_chain(struct blocking_notifier_head *, +extern int __atomic_notifier_call_chain(struct atomic_notifier_head *nh, + unsigned long val, void *v, int nr_to_call, int *nr_calls); +extern int blocking_notifier_call_chain(struct blocking_notifier_head *nh, unsigned long val, void *v); -extern int __blocking_notifier_call_chain(struct blocking_notifier_head *, - unsigned long val, void *v, int nr_to_call, unsigned int *nr_calls); -extern int raw_notifier_call_chain(struct raw_notifier_head *, +extern int __blocking_notifier_call_chain(struct blocking_notifier_head *nh, + unsigned long val, void *v, int nr_to_call, int *nr_calls); +extern int raw_notifier_call_chain(struct raw_notifier_head *nh, unsigned long val, void *v); -extern int __raw_notifier_call_chain(struct raw_notifier_head *, - unsigned long val, void *v, int nr_to_call, unsigned int *nr_calls); -extern int srcu_notifier_call_chain(struct srcu_notifier_head *, +extern int __raw_notifier_call_chain(struct raw_notifier_head *nh, + unsigned long val, void *v, int nr_to_call, int *nr_calls); +extern int srcu_notifier_call_chain(struct srcu_notifier_head *nh, unsigned long val, void *v); -extern int __srcu_notifier_call_chain(struct srcu_notifier_head *, - unsigned long val, void *v, int nr_to_call, unsigned int *nr_calls); +extern int __srcu_notifier_call_chain(struct srcu_notifier_head *nh, + unsigned long val, void *v, int nr_to_call, int *nr_calls); #define NOTIFY_DONE 0x0000 /* Don't care */ #define NOTIFY_OK 0x0001 /* Suits me */ diff -puN kernel/sys.c~extend-notifier_call_chain-to-count-nr_calls-made-fixes kernel/sys.c --- a/kernel/sys.c~extend-notifier_call_chain-to-count-nr_calls-made-fixes +++ a/kernel/sys.c @@ -134,9 +134,8 @@ static int notifier_chain_unregister(str return -ENOENT; } -/* +/** * notifier_call_chain - Informs the registered notifiers about an event. - * * @nl: Pointer to head of the blocking notifier chain * @val: Value passed unmodified to notifier function * @v: Pointer passed unmodified to notifier function @@ -144,14 +143,13 @@ static int notifier_chain_unregister(str * value of this parameter is -1. * @nr_calls: Records the number of notifications sent. Don't care * value of this field is NULL. - * - * RETURN VALUE: notifier_call_chain returns the value returned by the + * @returns: notifier_call_chain returns the value returned by the * last notifier function called. */ static int __kprobes notifier_call_chain(struct notifier_block **nl, unsigned long val, void *v, - int nr_to_call, unsigned int *nr_calls) + int nr_to_call, int *nr_calls) { int ret = NOTIFY_DONE; struct notifier_block *nb, *next_nb; @@ -227,8 +225,7 @@ int atomic_notifier_chain_unregister(str EXPORT_SYMBOL_GPL(atomic_notifier_chain_unregister); /** - * __atomic_notifier_call_chain - Call functions in an atomic notifier - * chain + * __atomic_notifier_call_chain - Call functions in an atomic notifier chain * @nh: Pointer to head of the atomic notifier chain * @val: Value passed unmodified to notifier function * @v: Pointer passed unmodified to notifier function @@ -249,7 +246,7 @@ EXPORT_SYMBOL_GPL(atomic_notifier_chain_ int __kprobes __atomic_notifier_call_chain(struct atomic_notifier_head *nh, unsigned long val, void *v, - int nr_to_call, unsigned int *nr_calls) + int nr_to_call, int *nr_calls) { int ret; @@ -337,8 +334,7 @@ int blocking_notifier_chain_unregister(s EXPORT_SYMBOL_GPL(blocking_notifier_chain_unregister); /** - * __blocking_notifier_call_chain - Call functions in a blocking notifier - * chain + * __blocking_notifier_call_chain - Call functions in a blocking notifier chain * @nh: Pointer to head of the blocking notifier chain * @val: Value passed unmodified to notifier function * @v: Pointer passed unmodified to notifier function @@ -358,7 +354,7 @@ EXPORT_SYMBOL_GPL(blocking_notifier_chai int __blocking_notifier_call_chain(struct blocking_notifier_head *nh, unsigned long val, void *v, - int nr_to_call, unsigned int * nr_calls) + int nr_to_call, int *nr_calls) { int ret; @@ -442,7 +438,7 @@ EXPORT_SYMBOL_GPL(raw_notifier_chain_unr int __raw_notifier_call_chain(struct raw_notifier_head *nh, unsigned long val, void *v, - int nr_to_call, unsigned int *nr_calls) + int nr_to_call, int *nr_calls) { return notifier_call_chain(&nh->head, val, v, nr_to_call, nr_calls); } @@ -527,7 +523,7 @@ int srcu_notifier_chain_unregister(struc EXPORT_SYMBOL_GPL(srcu_notifier_chain_unregister); /** - * srcu_notifier_call_chain - Call functions in an SRCU notifier chain + * __srcu_notifier_call_chain - Call functions in an SRCU notifier chain * @nh: Pointer to head of the SRCU notifier chain * @val: Value passed unmodified to notifier function * @v: Pointer passed unmodified to notifier function @@ -547,7 +543,7 @@ EXPORT_SYMBOL_GPL(srcu_notifier_chain_un int __srcu_notifier_call_chain(struct srcu_notifier_head *nh, unsigned long val, void *v, - int nr_to_call, unsigned int *nr_calls) + int nr_to_call, int *nr_calls) { int ret; int idx; _