Re: [PATCH] docs: conf.py: Ignore __counted_by attribute

From: Kees Cook
Date: Thu Dec 14 2023 - 20:03:48 EST


On Thu, Dec 14, 2023 at 04:25:01PM -0800, Randy Dunlap wrote:
>
>
> On 12/14/23 16:13, Kees Cook wrote:
> > It seems that Sphinx is confused by the __counted_by attribute on struct
> > members. Add it to the list of known attributes.
> >
> > Reported-by: kernel test robot <lkp@xxxxxxxxx>
> > Closes: https://lore.kernel.org/oe-kbuild-all/202312150614.kOx8xUkr-lkp@xxxxxxxxx/
> > Cc: Jonathan Corbet <corbet@xxxxxxx>
> > Cc: "Gustavo A. R. Silva" <gustavoars@xxxxxxxxxx>
> > Cc: linux-doc@xxxxxxxxxxxxxxx
> > Cc: linux-hardening@xxxxxxxxxxxxxxx
> > Signed-off-by: Kees Cook <keescook@xxxxxxxxxxxx>
> > ---
> > Documentation/conf.py | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/Documentation/conf.py b/Documentation/conf.py
> > index d4fdf6a3875a..5898c74b96fb 100644
> > --- a/Documentation/conf.py
> > +++ b/Documentation/conf.py
> > @@ -106,6 +106,7 @@ if major >= 3:
> > "__weak",
> > "noinline",
> > "__fix_address",
> > + "__counted_by",
> >
> > # include/linux/memblock.h:
> > "__init_memblock",
>
> If Sphinx needs to know about that, then fine. OTOH, for scripts/kernel-doc,

I *think* it does -- I can't reproduce the robot warnings myself.

> a similar change could have been made to dump_struct(), along with these
> others:
>
> # strip attributes
> $members =~ s/\s*$attribute/ /gi;
> $members =~ s/\s*__aligned\s*\([^;]*\)/ /gos;
> $members =~ s/\s*__packed\s*/ /gos;
> $members =~ s/\s*CRYPTO_MINALIGN_ATTR/ /gos;
> $members =~ s/\s*____cacheline_aligned_in_smp/ /gos;
> $members =~ s/\s*____cacheline_aligned/ /gos;

scripts/kernel-doc doesn't actually need this -- it already processes
struct members in a way that seems to ignore trailing attributes.

-Kees

--
Kees Cook