Re: kerneldoc warnings since commit 538fc2ee870a3 ("rcu: Introduce kfree_rcu() single-argument macro")

From: Lukas Bulwahn
Date: Tue Jan 05 2021 - 09:05:37 EST


On Tue, Jan 5, 2021 at 2:14 PM Uladzislau Rezki <urezki@xxxxxxxxx> wrote:
>
> Dear, Lukas.
>
> > Dear Uladzislau,
> >
> > in commit 538fc2ee870a3 ("rcu: Introduce kfree_rcu() single-argument
> > macro"), you have refactored the kfree_rcu macro.
> >
> > Since then, make htmldocs warns:
> >
> > ./include/linux/rcupdate.h:882: warning: Excess function parameter
> > 'ptr' description in 'kfree_rcu'
> > ./include/linux/rcupdate.h:882: warning: Excess function parameter
> > 'rhf' description in 'kfree_rcu'
> >
> > As you deleted the two arguments in the macro definition, kerneldoc
> > cannot resolve the argument names in the macro's kerneldoc
> > documentation anymore and warns about that.
> >
> > Probably, it is best to just turn the formal kerneldoc references to
> > the two arguments, which are not used in the macro definition anymore,
> > simply into two informal references in the documentation.
> >
> Thanks for your suggestion. I am not sure if htmldocs supports something
> like "__maybe_unused", but tend to say that it does not. See below the
> patch:
>

I was thinking of a similar solution as you found here. That will probably do.

Lukas

> <snip>
> From 65ecc7c58810c963c02e0596ce2e5758c54ef55d Mon Sep 17 00:00:00 2001
> From: "Uladzislau Rezki (Sony)" <urezki@xxxxxxxxx>
> Date: Tue, 5 Jan 2021 13:23:30 +0100
> Subject: [PATCH] rcu: fix kerneldoc warnings
>
> After refactoring of the kfree_rcu(), it becomes possible to use
> the macro with one or two arguments. From the other hand, in the
> description there are two arguments in the macro definition expected.
> That is why the "htmldocs" emits a warning about it:
>
> <snip>
> ./include/linux/rcupdate.h:882: warning: Excess function parameter
> 'ptr' description in 'kfree_rcu'
> ./include/linux/rcupdate.h:882: warning: Excess function parameter
> 'rhf' description in 'kfree_rcu'
> <snip>
>
> Fix it by converting two parameters into informal references in the
> macro description.
>
> Fixes: 3d3d9ff077a9 ("rcu: Introduce kfree_rcu() single-argument macro")
> Signed-off-by: Uladzislau Rezki (Sony) <urezki@xxxxxxxxx>
> ---
> include/linux/rcupdate.h | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h
> index ebd8dcca4997..e678ce7f5ca2 100644
> --- a/include/linux/rcupdate.h
> +++ b/include/linux/rcupdate.h
> @@ -854,8 +854,8 @@ static inline notrace void rcu_read_unlock_sched_notrace(void)
>
> /**
> * kfree_rcu() - kfree an object after a grace period.
> - * @ptr: pointer to kfree for both single- and double-argument invocations.
> - * @rhf: the name of the struct rcu_head within the type of @ptr,
> + * ptr: pointer to kfree for both single- and double-argument invocations.
> + * rhf: the name of the struct rcu_head within the type of ptr,
> * but only for double-argument invocations.
> *
> * Many rcu callbacks functions just call kfree() on the base structure.
> --
> 2.20.1
> <snip>
>
> Paul, does it work for you?
>
> Thanks!
>
> --
> Vlad Rezki