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)

Signed-off-by: Fabian Frederick <f...@skynet.be>
---
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 | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index d54a814..9e70cd7 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -4242,13 +4242,16 @@ 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";
+                       my $asminclude = `grep -Ec "#include\\s+<asm/$file>" 
$root/$checkfile`;
                        if (-f "$root/$checkfile" &&
                            $realfile ne $checkfile &&
-                           $1 !~ /$allowed_asm_includes/)
+                           $1 !~ /$allowed_asm_includes/ &&
+                           $asminclude > 0 )
                        {
                                if ($realfile =~ m{^arch/}) {
                                        CHK("ARCH_INCLUDE_LINUX",
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to