Re: [PATCH 5/7] checkpatch: warn if <asm/export.h> is included

From: Joe Perches
Date: Fri Jun 10 2022 - 21:33:37 EST


On Sat, 2022-06-11 at 03:32 +0900, Masahiro Yamada wrote:
> With the previous refactoring,
>
> - <asm/export.h> is a wrapper of <asm-generic/export.h>
> - <asm-generic/export.h> is a wrapper of <linux/export.h>
>
> My hope is to replace
>
> #include <asm/export.h> --> #include <linux/export.h>
>
> for all *.S files.
>
> For now, adding a warning in the checkpatch.
>
> Signed-off-by: Masahiro Yamada <masahiroy@xxxxxxxxxx>
> ---
>
> scripts/checkpatch.pl | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
[]
> @@ -3753,6 +3753,13 @@ sub process {
> "Avoid using '.L' prefixed local symbol names for denoting a range of code via 'SYM_*_START/END' annotations; see Documentation/asm-annotations.rst\n" . $herecurr);
> }
>
> +# warn if <asm/export.h> is included.
> +# <asm/export.h> is a wrapper of <linux/export.h>. Please include <linux/export.h> directly.
> + if ($tree && $rawline =~ m{^.\s*\#\s*include\s*\<asm\/export\.h\>}) {
> + WARN("INCLUDE_LINUX_EXPORT",
> + "Please include <linux/export.h> instead of <asm/export.h>\n" . $herecurr);
> + }

This warns on patch context lines.
That's not something checkpatch generally does.

Likely this should use /^\+ rather than /^.

And it's nice to have --fix capability

if (WARN("etc...") &&
$fix) {
$fixed[$fixlinenr] =~ s/\s*#\s*include\s*\<asm\/export\.h\>/#include <linux/export.h>/;
}

cheers, Joe