docs: conf.py: Ignore __counted_by attribute

Message ID 20231215001347.work.151-kees@kernel.org
State New
Headers
Series docs: conf.py: Ignore __counted_by attribute |

Commit Message

Kees Cook Dec. 15, 2023, 12:13 a.m. UTC
  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@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202312150614.kOx8xUkr-lkp@intel.com/
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: "Gustavo A. R. Silva" <gustavoars@kernel.org>
Cc: linux-doc@vger.kernel.org
Cc: linux-hardening@vger.kernel.org
Signed-off-by: Kees Cook <keescook@chromium.org>
---
 Documentation/conf.py | 1 +
 1 file changed, 1 insertion(+)
  

Comments

Randy Dunlap Dec. 15, 2023, 12:25 a.m. UTC | #1
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@intel.com>
> Closes: https://lore.kernel.org/oe-kbuild-all/202312150614.kOx8xUkr-lkp@intel.com/
> Cc: Jonathan Corbet <corbet@lwn.net>
> Cc: "Gustavo A. R. Silva" <gustavoars@kernel.org>
> Cc: linux-doc@vger.kernel.org
> Cc: linux-hardening@vger.kernel.org
> Signed-off-by: Kees Cook <keescook@chromium.org>
> ---
>  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,
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;
  
Kees Cook Dec. 15, 2023, 1:03 a.m. UTC | #2
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@intel.com>
> > Closes: https://lore.kernel.org/oe-kbuild-all/202312150614.kOx8xUkr-lkp@intel.com/
> > Cc: Jonathan Corbet <corbet@lwn.net>
> > Cc: "Gustavo A. R. Silva" <gustavoars@kernel.org>
> > Cc: linux-doc@vger.kernel.org
> > Cc: linux-hardening@vger.kernel.org
> > Signed-off-by: Kees Cook <keescook@chromium.org>
> > ---
> >  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
  
Jonathan Corbet Dec. 15, 2023, 4:31 p.m. UTC | #3
Kees Cook <keescook@chromium.org> writes:

> 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@intel.com>
> Closes: https://lore.kernel.org/oe-kbuild-all/202312150614.kOx8xUkr-lkp@intel.com/
> Cc: Jonathan Corbet <corbet@lwn.net>
> Cc: "Gustavo A. R. Silva" <gustavoars@kernel.org>
> Cc: linux-doc@vger.kernel.org
> Cc: linux-hardening@vger.kernel.org
> Signed-off-by: Kees Cook <keescook@chromium.org>
> ---
>  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",

Applied, thanks.

jon
  

Patch

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",