Hi Akira, On 12/10/24 3:04 AM, Akira Yokosawa wrote: > Since commit cdd30ebb1b9f ("module: Convert symbol namespace to string > literal"), exported symbols marked by EXPORT_SYMBOL_NS(_GPL) are > ignored by "kernel-doc -export" in fresh build of "make htmldocs". > > This is because regex in the perl script for those markers fails to > match the new signatures: > > - EXPORT_SYMBOL_NS(symbol, "ns"); > - EXPORT_SYMBOL_NS_GPL(symbol, "ns"); > > Update the regex so that it matches quoted string. > > Note: Escape sequence of \w is good for C identifiers, but can be > too strict for quoted strings. Instead, use \S, which matches any > non-whitespace character, for compatibility with possible extension > of namespace convention in the future [1]. > > Fixes: cdd30ebb1b9f ("module: Convert symbol namespace to string literal") > Link: https://lore.kernel.org/CAK7LNATMufXP0EA6QUE9hBkZMa6vJO6ZiaYuak2AhOrd2nSVKQ@xxxxxxxxxxxxxx/ [1] > Signed-off-by: Akira Yokosawa <akiyks@xxxxxxxxx> > Cc: Masahiro Yamada <masahiroy@xxxxxxxxxx> > --- > This fixes regression in v6.13-rc2. > > Quick reproducer: > > ./script/kernel-doc -rst -export drivers/iommu/iommufd/device.c > > On v6.13-rc2, kernel-doc will say: > > drivers/iommu/iommufd/device.c:1: warning: no structured comments found > I wondered where those warnings were coming from. Thanks for the explanation and fix. Tested-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx> Acked-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx> > With this patch applied, you'll get reST formatted kernel-doc comments. > > Akira > > --- > scripts/kernel-doc | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/scripts/kernel-doc b/scripts/kernel-doc > index f66070176ba3..4ee843d3600e 100755 > --- a/scripts/kernel-doc > +++ b/scripts/kernel-doc > @@ -267,7 +267,7 @@ my $doc_inline_sect = '\s*\*\s*(@\s*[\w][\w\.]*\s*):(.*)'; > my $doc_inline_end = '^\s*\*/\s*$'; > my $doc_inline_oneline = '^\s*/\*\*\s*(@[\w\s]+):\s*(.*)\s*\*/\s*$'; > my $export_symbol = '^\s*EXPORT_SYMBOL(_GPL)?\s*\(\s*(\w+)\s*\)\s*;'; > -my $export_symbol_ns = '^\s*EXPORT_SYMBOL_NS(_GPL)?\s*\(\s*(\w+)\s*,\s*\w+\)\s*;'; > +my $export_symbol_ns = '^\s*EXPORT_SYMBOL_NS(_GPL)?\s*\(\s*(\w+)\s*,\s*"\S+"\)\s*;'; > my $function_pointer = qr{([^\(]*\(\*)\s*\)\s*\(([^\)]*)\)}; > my $attribute = qr{__attribute__\s*\(\([a-z0-9,_\*\s\(\)]*\)\)}i; > > > base-commit: fac04efc5c793dccbd07e2d59af9f90b7fc0dca4 -- ~Randy