Messages in this thread | | | Subject | Re: [PATCH V3 linux-next] checkpatch: don't ask for asm/file.h to linux/file.h unconditionally | From | Joe Perches <> | Date | Tue, 31 Mar 2015 13:14:16 -0700 |
| |
On Tue, 2015-03-31 at 21:56 +0200, Fabian Frederick wrote: > Currently checkpatch warns when asm/file.h is included and linux/file.h > exists. That conversion can be made when linux/file.h includes asm/file.h > which is not always the case.(See signal.h)
OK by me.
I would have done it directly in the if, but no real worries either way.
Andrew Morton is the common path to get checkpatch patches upstream, so I cc'd him on this reply.
If he doesn't pick it up within a couple/few weeks, send it again.
cheers, Joe
> Signed-off-by: Fabian Frederick <fabf@skynet.be> > --- > V3: > Only grep when $root/$checkfile exists (suggested by Joe Perches) > V2: > Apply suggestions by Joe Perches: > -Remove superfluous -i in grep > -Use $root to make checkpatch callable from anywhere > -Process all include cases. > > scripts/checkpatch.pl | 18 +++++++++++------- > 1 file changed, 11 insertions(+), 7 deletions(-) > > diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl > index d54a814..c72e7ee 100755 > --- a/scripts/checkpatch.pl > +++ b/scripts/checkpatch.pl > @@ -4242,7 +4242,8 @@ sub process { > } > } > > -#warn if <asm/foo.h> is #included and <linux/foo.h> is available (uses RAW line) > +# warn if <asm/foo.h> is #included and <linux/foo.h> is available and includes > +# itself <asm/foo.h> (uses RAW line) > if ($tree && $rawline =~ m{^.\s*\#\s*include\s*\<asm\/(.*)\.h\>}) { > my $file = "$1.h"; > my $checkfile = "include/linux/$file"; > @@ -4250,12 +4251,15 @@ sub process { > $realfile ne $checkfile && > $1 !~ /$allowed_asm_includes/) > { > - if ($realfile =~ m{^arch/}) { > - CHK("ARCH_INCLUDE_LINUX", > - "Consider using #include <linux/$file> instead of <asm/$file>\n" . $herecurr); > - } else { > - WARN("INCLUDE_LINUX", > - "Use #include <linux/$file> instead of <asm/$file>\n" . $herecurr); > + my $asminclude = `grep -Ec "#include\\s+<asm/$file>" $root/$checkfile`; > + if ($asminclude > 0) { > + if ($realfile =~ m{^arch/}) { > + CHK("ARCH_INCLUDE_LINUX", > + "Consider using #include <linux/$file> instead of <asm/$file>\n" . $herecurr); > + } else { > + WARN("INCLUDE_LINUX", > + "Use #include <linux/$file> instead of <asm/$file>\n" . $herecurr); > + } > } > } > }
| |