[PATCH] scripts/misc-check: update export checks for EXPORT_SYMBOL_FOR_MODULES()

Vlastimil Babka posted 1 patch 1 month, 1 week ago
scripts/misc-check | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
[PATCH] scripts/misc-check: update export checks for EXPORT_SYMBOL_FOR_MODULES()
Posted by Vlastimil Babka 1 month, 1 week ago
The module export checks are looking for EXPORT_SYMBOL_GPL_FOR_MODULES()
which was renamed to EXPORT_SYMBOL_FOR_MODULES(). Update the checks.

Fixes: 6d3c3ca4c77e ("module: Rename EXPORT_SYMBOL_GPL_FOR_MODULES to EXPORT_SYMBOL_FOR_MODULES")
Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
---
I've missed these new checks when renaming the export macro due to my
git grep being too narrow. My commit went through Christian's vfs tree
but seems the script is part of kbuild (which is currently Odd fixes).
---
 scripts/misc-check | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/scripts/misc-check b/scripts/misc-check
index 84f08da17b2c0508b5c2471a6ffb2ab7e36592a4..40e5a4b01ff473a7bfd2fdc156ae06c8cf18f504 100755
--- a/scripts/misc-check
+++ b/scripts/misc-check
@@ -45,7 +45,7 @@ check_tracked_ignored_files () {
 # does not automatically fix it.
 check_missing_include_linux_export_h () {
 
-	git -C "${srctree:-.}" grep --files-with-matches -E 'EXPORT_SYMBOL((_NS)?(_GPL)?|_GPL_FOR_MODULES)\(.*\)' \
+	git -C "${srctree:-.}" grep --files-with-matches -E 'EXPORT_SYMBOL((_NS)?(_GPL)?|_FOR_MODULES)\(.*\)' \
 	    -- '*.[ch]' :^tools/ :^include/linux/export.h |
 	xargs -r git -C "${srctree:-.}" grep --files-without-match '#include[[:space:]]*<linux/export\.h>' |
 	xargs -r printf "%s: warning: EXPORT_SYMBOL() is used, but #include <linux/export.h> is missing\n" >&2
@@ -58,7 +58,7 @@ check_unnecessary_include_linux_export_h () {
 
 	git -C "${srctree:-.}" grep --files-with-matches '#include[[:space:]]*<linux/export\.h>' \
 	    -- '*.[c]' :^tools/ |
-	xargs -r git -C "${srctree:-.}" grep --files-without-match -E 'EXPORT_SYMBOL((_NS)?(_GPL)?|_GPL_FOR_MODULES)\(.*\)' |
+	xargs -r git -C "${srctree:-.}" grep --files-without-match -E 'EXPORT_SYMBOL((_NS)?(_GPL)?|_FOR_MODULES)\(.*\)' |
 	xargs -r printf "%s: warning: EXPORT_SYMBOL() is not used, but #include <linux/export.h> is present\n" >&2
 }
 

---
base-commit: 1b237f190eb3d36f52dffe07a40b5eb210280e00
change-id: 20250825-export_modules_fix-07d9597f9009

Best regards,
-- 
Vlastimil Babka <vbabka@suse.cz>
Re: [PATCH] scripts/misc-check: update export checks for EXPORT_SYMBOL_FOR_MODULES()
Posted by Nathan Chancellor 1 month, 1 week ago
On Mon, 25 Aug 2025 17:00:37 +0200, Vlastimil Babka wrote:
> The module export checks are looking for EXPORT_SYMBOL_GPL_FOR_MODULES()
> which was renamed to EXPORT_SYMBOL_FOR_MODULES(). Update the checks.
> 
> 

Applied, thanks!

[1/1] scripts/misc-check: update export checks for EXPORT_SYMBOL_FOR_MODULES()
      https://git.kernel.org/kbuild/c/0354e81b7bd62

Best regards,
-- 
Nathan Chancellor <nathan@kernel.org>
Re: [PATCH] scripts/misc-check: update export checks for EXPORT_SYMBOL_FOR_MODULES()
Posted by Nathan Chancellor 1 month, 1 week ago
On Mon, Aug 25, 2025 at 05:00:37PM +0200, Vlastimil Babka wrote:
> The module export checks are looking for EXPORT_SYMBOL_GPL_FOR_MODULES()
> which was renamed to EXPORT_SYMBOL_FOR_MODULES(). Update the checks.
> 
> Fixes: 6d3c3ca4c77e ("module: Rename EXPORT_SYMBOL_GPL_FOR_MODULES to EXPORT_SYMBOL_FOR_MODULES")
> Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
> ---
> I've missed these new checks when renaming the export macro due to my
> git grep being too narrow. My commit went through Christian's vfs tree
> but seems the script is part of kbuild (which is currently Odd fixes).

If this needs to reach Linus's tree to avoid warnings, it could go via
another vfs fixes pull request with our ack or we could ask him to pick
it up directly (as I am not sure we will have a fixes pull request this
cycle). If it is not urgent, I can pick it up via kbuild-next for 6.18.
I have no strong preference.

> ---
>  scripts/misc-check | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/scripts/misc-check b/scripts/misc-check
> index 84f08da17b2c0508b5c2471a6ffb2ab7e36592a4..40e5a4b01ff473a7bfd2fdc156ae06c8cf18f504 100755
> --- a/scripts/misc-check
> +++ b/scripts/misc-check
> @@ -45,7 +45,7 @@ check_tracked_ignored_files () {
>  # does not automatically fix it.
>  check_missing_include_linux_export_h () {
>  
> -	git -C "${srctree:-.}" grep --files-with-matches -E 'EXPORT_SYMBOL((_NS)?(_GPL)?|_GPL_FOR_MODULES)\(.*\)' \
> +	git -C "${srctree:-.}" grep --files-with-matches -E 'EXPORT_SYMBOL((_NS)?(_GPL)?|_FOR_MODULES)\(.*\)' \
>  	    -- '*.[ch]' :^tools/ :^include/linux/export.h |
>  	xargs -r git -C "${srctree:-.}" grep --files-without-match '#include[[:space:]]*<linux/export\.h>' |
>  	xargs -r printf "%s: warning: EXPORT_SYMBOL() is used, but #include <linux/export.h> is missing\n" >&2
> @@ -58,7 +58,7 @@ check_unnecessary_include_linux_export_h () {
>  
>  	git -C "${srctree:-.}" grep --files-with-matches '#include[[:space:]]*<linux/export\.h>' \
>  	    -- '*.[c]' :^tools/ |
> -	xargs -r git -C "${srctree:-.}" grep --files-without-match -E 'EXPORT_SYMBOL((_NS)?(_GPL)?|_GPL_FOR_MODULES)\(.*\)' |
> +	xargs -r git -C "${srctree:-.}" grep --files-without-match -E 'EXPORT_SYMBOL((_NS)?(_GPL)?|_FOR_MODULES)\(.*\)' |
>  	xargs -r printf "%s: warning: EXPORT_SYMBOL() is not used, but #include <linux/export.h> is present\n" >&2
>  }
>  
> 
> ---
> base-commit: 1b237f190eb3d36f52dffe07a40b5eb210280e00
> change-id: 20250825-export_modules_fix-07d9597f9009
> 
> Best regards,
> -- 
> Vlastimil Babka <vbabka@suse.cz>
>
Re: [PATCH] scripts/misc-check: update export checks for EXPORT_SYMBOL_FOR_MODULES()
Posted by Nicolas Schier 1 month, 1 week ago
On Mon, Aug 25, 2025 at 10:07:10AM -0700, Nathan Chancellor wrote:
> On Mon, Aug 25, 2025 at 05:00:37PM +0200, Vlastimil Babka wrote:
> > The module export checks are looking for EXPORT_SYMBOL_GPL_FOR_MODULES()
> > which was renamed to EXPORT_SYMBOL_FOR_MODULES(). Update the checks.
> > 
> > Fixes: 6d3c3ca4c77e ("module: Rename EXPORT_SYMBOL_GPL_FOR_MODULES to EXPORT_SYMBOL_FOR_MODULES")
> > Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
> > ---
> > I've missed these new checks when renaming the export macro due to my
> > git grep being too narrow. My commit went through Christian's vfs tree
> > but seems the script is part of kbuild (which is currently Odd fixes).
> 
> If this needs to reach Linus's tree to avoid warnings, it could go via
> another vfs fixes pull request with our ack or we could ask him to pick
> it up directly (as I am not sure we will have a fixes pull request this
> cycle). If it is not urgent, I can pick it up via kbuild-next for 6.18.
> I have no strong preference.

Hm, you're right, the check will issue false warnings (and misses to
warn when it should) without this update.  Therefore I think it would be
good to get the patch merged soon - even though the warnings are only
issued with W=2.

So, I second asking for the patch to go via vfs fixes or directly via
Linus.  If it helps:

Acked-by: Nicolas Schier <nsc@kernel.org>

Kind regards,
Nicolas
Re: [PATCH] scripts/misc-check: update export checks for EXPORT_SYMBOL_FOR_MODULES()
Posted by Nathan Chancellor 1 month, 1 week ago
On Mon, Aug 25, 2025 at 10:20:13PM +0200, Nicolas Schier wrote:
> On Mon, Aug 25, 2025 at 10:07:10AM -0700, Nathan Chancellor wrote:
> > On Mon, Aug 25, 2025 at 05:00:37PM +0200, Vlastimil Babka wrote:
> > > The module export checks are looking for EXPORT_SYMBOL_GPL_FOR_MODULES()
> > > which was renamed to EXPORT_SYMBOL_FOR_MODULES(). Update the checks.
> > > 
> > > Fixes: 6d3c3ca4c77e ("module: Rename EXPORT_SYMBOL_GPL_FOR_MODULES to EXPORT_SYMBOL_FOR_MODULES")
> > > Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
> > > ---
> > > I've missed these new checks when renaming the export macro due to my
> > > git grep being too narrow. My commit went through Christian's vfs tree
> > > but seems the script is part of kbuild (which is currently Odd fixes).
> > 
> > If this needs to reach Linus's tree to avoid warnings, it could go via
> > another vfs fixes pull request with our ack or we could ask him to pick
> > it up directly (as I am not sure we will have a fixes pull request this
> > cycle). If it is not urgent, I can pick it up via kbuild-next for 6.18.
> > I have no strong preference.
> 
> Hm, you're right, the check will issue false warnings (and misses to
> warn when it should) without this update.  Therefore I think it would be
> good to get the patch merged soon - even though the warnings are only
> issued with W=2.

Oh, I forgot that these warnings were downgraded to W=2 in commit
a6a7946bd691 ("kbuild: move warnings about linux/export.h from W=1 to
W=2")... I thought these were in W=1 still.

In that case, I do not think it is really imperative to fast track this
to mainline. We are not and probably never will be W=2 clean so the
presence of new or missing warnings is not a big bug to me. I will apply
this to kbuild-next later today but I can drop it if someone wants to
fast track it.

Cheers,
Nathan
Re: [PATCH] scripts/misc-check: update export checks for EXPORT_SYMBOL_FOR_MODULES()
Posted by Vlastimil Babka 1 month, 1 week ago
On 8/25/25 22:20, Nicolas Schier wrote:
> On Mon, Aug 25, 2025 at 10:07:10AM -0700, Nathan Chancellor wrote:
>> On Mon, Aug 25, 2025 at 05:00:37PM +0200, Vlastimil Babka wrote:
>> > The module export checks are looking for EXPORT_SYMBOL_GPL_FOR_MODULES()
>> > which was renamed to EXPORT_SYMBOL_FOR_MODULES(). Update the checks.
>> > 
>> > Fixes: 6d3c3ca4c77e ("module: Rename EXPORT_SYMBOL_GPL_FOR_MODULES to EXPORT_SYMBOL_FOR_MODULES")
>> > Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
>> > ---
>> > I've missed these new checks when renaming the export macro due to my
>> > git grep being too narrow. My commit went through Christian's vfs tree
>> > but seems the script is part of kbuild (which is currently Odd fixes).
>> 
>> If this needs to reach Linus's tree to avoid warnings, it could go via
>> another vfs fixes pull request with our ack or we could ask him to pick
>> it up directly (as I am not sure we will have a fixes pull request this
>> cycle). If it is not urgent, I can pick it up via kbuild-next for 6.18.
>> I have no strong preference.
> 
> Hm, you're right, the check will issue false warnings (and misses to
> warn when it should) without this update.  Therefore I think it would be
> good to get the patch merged soon - even though the warnings are only
> issued with W=2.

Note only two files use EXPORT_SYMBOL_FOR_MODULES() in mainline:

fs/anon_inodes.c - contains also EXPORT_SYMBOL_GPL() so the checks will
cover it anyway (and IIUC since it includes module.h and not export.h it
should be causing a warning already?)

drivers/tty/serial/8250/8250_rsa.c: has no other variants of EXPORT, doesn't
include export.h (includes module.h) so this will not trigger unnecessary
export.h warning. It should be triggering missing export.h include warning,
but will not without this patch.

So IIUC missing this fix results in missing warnings, not adding spurious
ones. And there seem to be many existing warnings already. So it doesn't
seem that urgent fwiw.

> So, I second asking for the patch to go via vfs fixes or directly via
> Linus.  If it helps:

Let's see what Christian thinks then.

> Acked-by: Nicolas Schier <nsc@kernel.org>
> 
> Kind regards,
> Nicolas
Re: [PATCH] scripts/misc-check: update export checks for EXPORT_SYMBOL_FOR_MODULES()
Posted by Daniel Gomez 1 month, 1 week ago

On 25/08/2025 17.00, Vlastimil Babka wrote:
> The module export checks are looking for EXPORT_SYMBOL_GPL_FOR_MODULES()
> which was renamed to EXPORT_SYMBOL_FOR_MODULES(). Update the checks.
> 
> Fixes: 6d3c3ca4c77e ("module: Rename EXPORT_SYMBOL_GPL_FOR_MODULES to EXPORT_SYMBOL_FOR_MODULES")
> Signed-off-by: Vlastimil Babka <vbabka@suse.cz>

LGTM,

Reviewed-by: Daniel Gomez <da.gomez@samsung.com>

> ---
> I've missed these new checks when renaming the export macro due to my
> git grep being too narrow. My commit went through Christian's vfs tree
> but seems the script is part of kbuild (which is currently Odd fixes).
> ---
>  scripts/misc-check | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/scripts/misc-check b/scripts/misc-check
> index 84f08da17b2c0508b5c2471a6ffb2ab7e36592a4..40e5a4b01ff473a7bfd2fdc156ae06c8cf18f504 100755
> --- a/scripts/misc-check
> +++ b/scripts/misc-check
> @@ -45,7 +45,7 @@ check_tracked_ignored_files () {
>  # does not automatically fix it.
>  check_missing_include_linux_export_h () {
>  
> -	git -C "${srctree:-.}" grep --files-with-matches -E 'EXPORT_SYMBOL((_NS)?(_GPL)?|_GPL_FOR_MODULES)\(.*\)' \
> +	git -C "${srctree:-.}" grep --files-with-matches -E 'EXPORT_SYMBOL((_NS)?(_GPL)?|_FOR_MODULES)\(.*\)' \
>  	    -- '*.[ch]' :^tools/ :^include/linux/export.h |
>  	xargs -r git -C "${srctree:-.}" grep --files-without-match '#include[[:space:]]*<linux/export\.h>' |
>  	xargs -r printf "%s: warning: EXPORT_SYMBOL() is used, but #include <linux/export.h> is missing\n" >&2
> @@ -58,7 +58,7 @@ check_unnecessary_include_linux_export_h () {
>  
>  	git -C "${srctree:-.}" grep --files-with-matches '#include[[:space:]]*<linux/export\.h>' \
>  	    -- '*.[c]' :^tools/ |
> -	xargs -r git -C "${srctree:-.}" grep --files-without-match -E 'EXPORT_SYMBOL((_NS)?(_GPL)?|_GPL_FOR_MODULES)\(.*\)' |
> +	xargs -r git -C "${srctree:-.}" grep --files-without-match -E 'EXPORT_SYMBOL((_NS)?(_GPL)?|_FOR_MODULES)\(.*\)' |
>  	xargs -r printf "%s: warning: EXPORT_SYMBOL() is not used, but #include <linux/export.h> is present\n" >&2
>  }
>  
> 
> ---
> base-commit: 1b237f190eb3d36f52dffe07a40b5eb210280e00
> change-id: 20250825-export_modules_fix-07d9597f9009
> 
> Best regards,
Re: [PATCH] scripts/misc-check: update export checks for EXPORT_SYMBOL_FOR_MODULES()
Posted by Nicolas Schier 1 month, 1 week ago
On Mon, Aug 25, 2025 at 05:00:37PM +0200, Vlastimil Babka wrote:
> The module export checks are looking for EXPORT_SYMBOL_GPL_FOR_MODULES()
> which was renamed to EXPORT_SYMBOL_FOR_MODULES(). Update the checks.
> 
> Fixes: 6d3c3ca4c77e ("module: Rename EXPORT_SYMBOL_GPL_FOR_MODULES to EXPORT_SYMBOL_FOR_MODULES")
> Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
> ---
> I've missed these new checks when renaming the export macro due to my
> git grep being too narrow. My commit went through Christian's vfs tree
> but seems the script is part of kbuild (which is currently Odd fixes).
> ---
>  scripts/misc-check | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)

Good catch, thanks a lot!  We will gladly take the patch to kbuild-next.

Reviewed-by: Nicolas Schier <nsc@kernel.org>