[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20081229132456.GA6938@uranus.ravnborg.org>
Date: Mon, 29 Dec 2008 14:24:56 +0100
From: Sam Ravnborg <sam@...nborg.org>
To: Mike Frysinger <vapier@...too.org>
Cc: linux-kernel@...r.kernel.org
Subject: Re: [PATCH] kbuild: warn about headers using __[us]{8,16,32,64} types w/out linux/types.h
On Mon, Dec 29, 2008 at 07:18:47AM -0500, Mike Frysinger wrote:
> Signed-off-by: Mike Frysinger <vapier@...too.org>
> ---
> scripts/headers_check.pl | 20 ++++++++++++++++++++
> 1 files changed, 20 insertions(+), 0 deletions(-)
>
> diff --git a/scripts/headers_check.pl b/scripts/headers_check.pl
> index bdd9fb6..5036319 100644
> --- a/scripts/headers_check.pl
> +++ b/scripts/headers_check.pl
> @@ -37,6 +37,7 @@ foreach my $file (@files) {
> check_include();
> check_prototypes();
> check_config();
> + check_sizetypes();
> }
> close FH;
> }
> @@ -72,3 +73,22 @@ sub check_config
> printf STDERR "$filename:$lineno: leaks CONFIG_$1 to userspace where it is not valid\n";
> }
> }
> +
> +my $linux_types;
> +sub check_sizetypes
> +{
> + if ($lineno == 1) {
> + $linux_types = 0;
> + } elsif ($linux_types) {
> + return;
> + }
> + if ($line =~ m/^\s*#\s*include\s+<linux\/types.h>/) {
> + $linux_types = 1;
> + return;
> + }
> + if ($line =~ m/__[us](8|16|32|64)\b/) {
> + printf STDERR "$filename:$lineno: found __[us]{8,16,32,64} type w/out #include <linux/types.h>\n";
> + # Warn until headers are all fixed
> + #$ret = 1;
> + }
> +}
We do not need to warn for each line in a file. Only once is enough.
Also I assume that include <asm/types.h> is also ok.
It looks like this now. Acceptable?
kbuild-next.git is updated now (but not with this patch).
Sam
diff --git a/scripts/headers_check.pl b/scripts/headers_check.pl
index 72924a7..27a0d1f 100644
--- a/scripts/headers_check.pl
+++ b/scripts/headers_check.pl
@@ -35,6 +35,7 @@ foreach my $file (@files) {
while ($line = <FH>) {
$lineno++;
check_include();
+ check_sizetypes();
check_prototypes();
check_config();
}
@@ -73,3 +74,27 @@ sub check_config
}
}
+my $linux_types;
+sub check_sizetypes
+{
+ if ($lineno == 1) {
+ $linux_types = 0;
+ } elsif ($linux_types >= 1) {
+ return;
+ }
+ if ($line =~ m/^\s*#\s*include\s+<linux\/types.h>/) {
+ $linux_types = 1;
+ return;
+ }
+ if ($line =~ m/^\s*#\s*include\s+<asm\/types.h>/) {
+ $linux_types = 1;
+ return;
+ }
+ if ($line =~ m/__[us](8|16|32|64)\b/) {
+ printf STDERR "$filename:$lineno: found __[us]{8,16,32,64} type w/out #include <linux/types.h>\n";
+ $linux_types = 2;
+ # Warn until headers are all fixed
+ #$ret = 1;
+ }
+}
+
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists