Em Tue, 25 Dec 2018 13:12:58 -0800
Linus Torvalds <torva...@linux-foundation.org> escreveu:

> On Thu, Dec 20, 2018 at 4:45 AM Mauro Carvalho Chehab
> <mchehab+sams...@kernel.org> wrote:
> >
> > Also, it would be good if you merge first the docs-next pull request from
> > Jon, as otherwise, you'll see some warnings when building documentation,
> > due to an issue at scripts/kernel-doc, whose fix is at documentation tree.  
> 
> I don't seem to have that in my pile of pull requests, so docs
> creation will warn for a bit. Not a huge deal.

Yeah, we can live without that for a while. In any case, the patch that
fixes it is this one:

        3d9bfb19bd70 ("scripts/kernel-doc: Fix struct and struct field 
attribute processing")

I'm enclosing it as a reference (as seen at Jon's docs-next tree). It is
probably worth to just wait for Jon's pull request.

Thanks,
Mauro

From: Sakari Ailus <sakari.ai...@linux.intel.com>
Date: Thu, 22 Nov 2018 13:06:04 +0200
Subject: [PATCH] scripts/kernel-doc: Fix struct and struct field attribute
 processing

The kernel-doc attempts to clear the struct and struct member attributes
from the API documentation it produces. It falls short of the job in the
following respects:

- extra whitespaces are left where __attribute__((...)) was removed,

- only a single attribute is removed per struct,

- attributes (such as aligned) containing numbers were not removed,

- attributes are only cleared from struct fields, not structs themselves.

This patch addresses these issues by removing the attributes.

Signed-off-by: Sakari Ailus <sakari.ai...@linux.intel.com>
Signed-off-by: Jonathan Corbet <cor...@lwn.net>

diff --git a/scripts/kernel-doc b/scripts/kernel-doc
index f9f143145c4b..c5333d251985 100755
--- a/scripts/kernel-doc
+++ b/scripts/kernel-doc
@@ -1062,7 +1062,7 @@ sub dump_struct($$) {
     my $x = shift;
     my $file = shift;
 
-    if ($x =~ /(struct|union)\s+(\w+)\s*\{(.*)\}/) {
+    if ($x =~ 
/(struct|union)\s+(\w+)\s*\{(.*)\}(\s*(__packed|__aligned|__attribute__\s*\(\([a-z0-9,_\s\(\)]*\)\)))*/)
 {
        my $decl_type = $1;
        $declaration_name = $2;
        my $members = $3;
@@ -1073,8 +1073,9 @@ sub dump_struct($$) {
        # strip comments:
        $members =~ s/\/\*.*?\*\///gos;
        # strip attributes
-       $members =~ s/__attribute__\s*\(\([a-z,_\*\s\(\)]*\)\)//i;
-       $members =~ s/__aligned\s*\([^;]*\)//gos;
+       $members =~ s/\s*__attribute__\s*\(\([a-z0-9,_\*\s\(\)]*\)\)//gi;
+       $members =~ s/\s*__aligned\s*\([^;]*\)//gos;
+       $members =~ s/\s*__packed\s*//gos;
        $members =~ s/\s*CRYPTO_MINALIGN_ATTR//gos;
        # replace DECLARE_BITMAP
        $members =~ s/DECLARE_BITMAP\s*\(([^,)]+),\s*([^,)]+)\)/unsigned long 
$1\[BITS_TO_LONGS($2)\]/gos;

Reply via email to