* [PATCH] kbuild: warn about headers using __[us]{8,16,32,64} types w/out linux/types.h
@ 2008-12-29 12:18 Mike Frysinger
2008-12-29 13:24 ` Sam Ravnborg
0 siblings, 1 reply; 6+ messages in thread
From: Mike Frysinger @ 2008-12-29 12:18 UTC (permalink / raw)
To: Sam Ravnborg, linux-kernel
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
---
| 20 ++++++++++++++++++++
1 files changed, 20 insertions(+), 0 deletions(-)
--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;
+ }
+}
--
1.6.0.6
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] kbuild: warn about headers using __[us]{8,16,32,64} types w/out linux/types.h
2008-12-29 12:18 [PATCH] kbuild: warn about headers using __[us]{8,16,32,64} types w/out linux/types.h Mike Frysinger
@ 2008-12-29 13:24 ` Sam Ravnborg
2008-12-29 20:27 ` Mike Frysinger
0 siblings, 1 reply; 6+ messages in thread
From: Sam Ravnborg @ 2008-12-29 13:24 UTC (permalink / raw)
To: Mike Frysinger; +Cc: linux-kernel
On Mon, Dec 29, 2008 at 07:18:47AM -0500, Mike Frysinger wrote:
> Signed-off-by: Mike Frysinger <vapier@gentoo.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;
+ }
+}
+
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] kbuild: warn about headers using __[us]{8,16,32,64} types w/out linux/types.h
2008-12-29 13:24 ` Sam Ravnborg
@ 2008-12-29 20:27 ` Mike Frysinger
2008-12-30 10:43 ` Sam Ravnborg
0 siblings, 1 reply; 6+ messages in thread
From: Mike Frysinger @ 2008-12-29 20:27 UTC (permalink / raw)
To: Sam Ravnborg; +Cc: linux-kernel
[-- Attachment #1: Type: text/plain, Size: 1756 bytes --]
On Monday 29 December 2008 08:24:56 Sam Ravnborg wrote:
> On Mon, Dec 29, 2008 at 07:18:47AM -0500, Mike Frysinger wrote:
> > Signed-off-by: Mike Frysinger <vapier@gentoo.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.
i wasnt sure about that ... got pretty noisy the way i posted it :)
> Also I assume that include <asm/types.h> is also ok.
i dont think so ... does it really make sense for headers to be hitting
asm/types.h anyways ? shouldnt they all be going through linux/types.h ?
checkpatch would certainly warn about it ...
-mike
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 835 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] kbuild: warn about headers using __[us]{8,16,32,64} types w/out linux/types.h
2008-12-29 20:27 ` Mike Frysinger
@ 2008-12-30 10:43 ` Sam Ravnborg
2008-12-30 11:50 ` Mike Frysinger
2013-10-08 19:03 ` [PATCH] kbuild: warn about headers using __[us]{8, 16, 32, 64} " Geert Uytterhoeven
0 siblings, 2 replies; 6+ messages in thread
From: Sam Ravnborg @ 2008-12-30 10:43 UTC (permalink / raw)
To: Mike Frysinger; +Cc: linux-kernel
On Mon, Dec 29, 2008 at 03:27:51PM -0500, Mike Frysinger wrote:
> >
> > We do not need to warn for each line in a file. Only once is enough.
>
> i wasnt sure about that ... got pretty noisy the way i posted it :)
>
> > Also I assume that include <asm/types.h> is also ok.
>
> i dont think so ... does it really make sense for headers to be hitting
> asm/types.h anyways ? shouldnt they all be going through linux/types.h ?
> checkpatch would certainly warn about it ...
I added following patch which I have pushed out.
Sam
>From 1f71c478dadbe1425eeaa704e50c7030ab011c5b Mon Sep 17 00:00:00 2001
From: Sam Ravnborg <sam@ravnborg.org>
Date: Tue, 30 Dec 2008 11:34:58 +0100
Subject: [PATCH] kbuild: add checks for include of linux/types in userspace headers
If we see __[us](8|16|32|64) then we must include <linux/types.h>
If wee see include of <asm/types.h> then we recommend <linux/types.h>
Original script from Mike but modified by me.
Cc: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
---
| 47 +++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 44 insertions(+), 3 deletions(-)
--git a/scripts/headers_check.pl b/scripts/headers_check.pl
index 72924a7..b62c319 100644
--- a/scripts/headers_check.pl
+++ b/scripts/headers_check.pl
@@ -34,9 +34,11 @@ foreach my $file (@files) {
$lineno = 0;
while ($line = <FH>) {
$lineno++;
- check_include();
- check_prototypes();
- check_config();
+ &check_include();
+ &check_asm_types();
+ &check_sizetypes();
+ &check_prototypes();
+ &check_config();
}
close FH;
}
@@ -73,3 +75,42 @@ sub check_config
}
}
+my $linux_asm_types;
+sub check_asm_types()
+{
+ if ($lineno == 1) {
+ $linux_asm_types = 0;
+ } elsif ($linux_asm_types >= 1) {
+ return;
+ }
+ if ($line =~ m/^\s*#\s*include\s+<asm\/types.h>/) {
+ $linux_asm_types = 1;
+ printf STDERR "$filename:$lineno: " .
+ "include of <linux/types.h> is preferred over <asm/types.h>\n"
+ # Warn until headers are all fixed
+ #$ret = 1;
+ }
+}
+
+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/__[us](8|16|32|64)\b/) {
+ printf STDERR "$filename:$lineno: " .
+ "found __[us]{8,16,32,64} type " .
+ "without #include <linux/types.h>\n";
+ $linux_types = 2;
+ # Warn until headers are all fixed
+ #$ret = 1;
+ }
+}
+
--
1.6.0.2.GIT
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] kbuild: warn about headers using __[us]{8,16,32,64} types w/out linux/types.h
2008-12-30 10:43 ` Sam Ravnborg
@ 2008-12-30 11:50 ` Mike Frysinger
2013-10-08 19:03 ` [PATCH] kbuild: warn about headers using __[us]{8, 16, 32, 64} " Geert Uytterhoeven
1 sibling, 0 replies; 6+ messages in thread
From: Mike Frysinger @ 2008-12-30 11:50 UTC (permalink / raw)
To: Sam Ravnborg; +Cc: linux-kernel
[-- Attachment #1: Type: text/plain, Size: 2456 bytes --]
On Tuesday 30 December 2008 05:43:03 Sam Ravnborg wrote:
> On Mon, Dec 29, 2008 at 03:27:51PM -0500, Mike Frysinger wrote:
> > > We do not need to warn for each line in a file. Only once is enough.
> >
> > i wasnt sure about that ... got pretty noisy the way i posted it :)
> >
> > > Also I assume that include <asm/types.h> is also ok.
> >
> > i dont think so ... does it really make sense for headers to be hitting
> > asm/types.h anyways ? shouldnt they all be going through linux/types.h ?
> > checkpatch would certainly warn about it ...
>
> I added following patch which I have pushed out.
>
> Sam
>
> From 1f71c478dadbe1425eeaa704e50c7030ab011c5b Mon Sep 17 00:00:00 2001
> From: Sam Ravnborg <sam@ravnborg.org>
> Date: Tue, 30 Dec 2008 11:34:58 +0100
> Subject: [PATCH] kbuild: add checks for include of linux/types in userspace
> headers
>
> If we see __[us](8|16|32|64) then we must include <linux/types.h>
> If wee see include of <asm/types.h> then we recommend <linux/types.h>
>
> Original script from Mike but modified by me.
>
> Cc: Mike Frysinger <vapier@gentoo.org>
> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
> ---
> scripts/headers_check.pl | 47
> +++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 44
> insertions(+), 3 deletions(-)
>
> diff --git a/scripts/headers_check.pl b/scripts/headers_check.pl
> index 72924a7..b62c319 100644
> --- a/scripts/headers_check.pl
> +++ b/scripts/headers_check.pl
> @@ -34,9 +34,11 @@ foreach my $file (@files) {
> $lineno = 0;
> while ($line = <FH>) {
> $lineno++;
> - check_include();
> - check_prototypes();
> - check_config();
> + &check_include();
> + &check_asm_types();
> + &check_sizetypes();
> + &check_prototypes();
> + &check_config();
> }
> close FH;
> }
> @@ -73,3 +75,42 @@ sub check_config
> }
> }
>
> +my $linux_asm_types;
> +sub check_asm_types()
> +{
> + if ($lineno == 1) {
> + $linux_asm_types = 0;
> + } elsif ($linux_asm_types >= 1) {
> + return;
> + }
> + if ($line =~ m/^\s*#\s*include\s+<asm\/types.h>/) {
> + $linux_asm_types = 1;
> + printf STDERR "$filename:$lineno: " .
> + "include of <linux/types.h> is preferred over <asm/types.h>\n"
> + # Warn until headers are all fixed
> + #$ret = 1;
> + }
> +}
you'll want to special case linux/types.h as it should be pulling in
asm/types.h ... off the top of my head, that's the only one ...
-mike
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 835 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] kbuild: warn about headers using __[us]{8, 16, 32, 64} types w/out linux/types.h
2008-12-30 10:43 ` Sam Ravnborg
2008-12-30 11:50 ` Mike Frysinger
@ 2013-10-08 19:03 ` Geert Uytterhoeven
1 sibling, 0 replies; 6+ messages in thread
From: Geert Uytterhoeven @ 2013-10-08 19:03 UTC (permalink / raw)
To: Sam Ravnborg; +Cc: Mike Frysinger, Linux Kernel Development, linux-kbuild
On Tue, 30 Dec 2008, Sam Ravnborg wrote:
> Subject: [PATCH] kbuild: add checks for include of linux/types in userspace headers
> If we see __[us](8|16|32|64) then we must include <linux/types.h>
> + if ($line =~ m/__[us](8|16|32|64)\b/) {
> + printf STDERR "$filename:$lineno: " .
> + "found __[us]{8,16,32,64} type " .
> + "without #include <linux/types.h>\n";
> + $linux_types = 2;
> + # Warn until headers are all fixed
> + #$ret = 1;
> + }
FWIW, this also triggers on __[us]{8,16,32,64} in comments instead of in
actual code (just got caught ;-).
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2013-10-08 19:03 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-12-29 12:18 [PATCH] kbuild: warn about headers using __[us]{8,16,32,64} types w/out linux/types.h Mike Frysinger
2008-12-29 13:24 ` Sam Ravnborg
2008-12-29 20:27 ` Mike Frysinger
2008-12-30 10:43 ` Sam Ravnborg
2008-12-30 11:50 ` Mike Frysinger
2013-10-08 19:03 ` [PATCH] kbuild: warn about headers using __[us]{8, 16, 32, 64} " Geert Uytterhoeven
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).