public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [rfc] headers_check cleanups break the whole world
@ 2009-02-25  3:25 Kyle McMartin
  2009-02-25  6:24 ` H. Peter Anvin
  2009-02-25  6:56 ` Ingo Molnar
  0 siblings, 2 replies; 20+ messages in thread
From: Kyle McMartin @ 2009-02-25  3:25 UTC (permalink / raw)
  To: mingo; +Cc: dwmw2, linux-kernel, hpa

[names omitted to protect the innocent, hpa@ on the CC wrt klibc maybe
  using these? ]

Hi,

Commits like

    headers_check fix: foo.h
    
    fix the following 'make headers_check' warnings:
      usr/include/linux/foo.h:29: include of <linux/types.h> is preferred
      usr/include/linux/foo.h:102: found __[us]{8,16,32,64} type without

have proved problematic...

I've had to point out at least two userspace fixes[1] for a variety of
reasons that these patches exacerbated. Note however that I didn't say
they were wrong.

The reason for this is you cannot intermix glibc header <sys/*.h>
includes with <linux/*.h> includes for most things without defining the
__KERNEL_STRICT_NAMES guard. If you fail to define this, you end up
with multiple definitions of things like dev_t.

Software was able to get by, because things that used the headers, dvb for
example were not getting <linux/types.h> into the include chain, because
they were using <asm/types.h> directly.

I propose we invert that logic, so the presumable libc that makes use of
the <linux/types.h> header can just define that it wants these types.
(test __KERNEL__ as well so the kernel doesn't need a pointless
#define.)

If this isn't tenable, how about moving the {,__}[su]{8,16,32,64}
integer types into their own header, so we can avoid this mess ever
occuring in the future. I'm sure the janitors can have a field day with
that... :)

That said, who exactly is the userspace consumer for those
	typedef __kernel_dev_t	dev_t;
defines? Can we just include them all in #ifdef __KERNEL__?

Thoughts?

cheers, Kyle

1. Ok, one of them was libcap playing utterly stupid games with
<linux/capability.h> and header guards, but it was exacerbated by a
similar patch...


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [rfc] headers_check cleanups break the whole world
  2009-02-25  3:25 [rfc] headers_check cleanups break the whole world Kyle McMartin
@ 2009-02-25  6:24 ` H. Peter Anvin
  2009-02-25  6:56 ` Ingo Molnar
  1 sibling, 0 replies; 20+ messages in thread
From: H. Peter Anvin @ 2009-02-25  6:24 UTC (permalink / raw)
  To: Kyle McMartin; +Cc: mingo, dwmw2, linux-kernel

Kyle McMartin wrote:
> 
> The reason for this is you cannot intermix glibc header <sys/*.h>
> includes with <linux/*.h> includes for most things without defining the
> __KERNEL_STRICT_NAMES guard. If you fail to define this, you end up
> with multiple definitions of things like dev_t.
> 
> Software was able to get by, because things that used the headers, dvb for
> example were not getting <linux/types.h> into the include chain, because
> they were using <asm/types.h> directly.
> 
> I propose we invert that logic, so the presumable libc that makes use of
> the <linux/types.h> header can just define that it wants these types.
> (test __KERNEL__ as well so the kernel doesn't need a pointless
> #define.)
> 

The Right Thing[TM] here is to change the exported headers so that
*only* the __kernel* names are exported, and then remove the
non-__KERNEL_STRICT_NAMES version of <linux/types.h>.  The *only* libc
for which non-__KERNEL_STRICT_NAMES ever made sense was for the
long-since-obsolete libc5.

This, by the way, is not frivolous work.  The work that has been done in
this area already has smoked out a number of bugs where exported headers
were using user space types, which meant they were using the *WRONG
TYPES* on glibc.  Completely.

> If this isn't tenable, how about moving the {,__}[su]{8,16,32,64}
> integer types into their own header, so we can avoid this mess ever
> occuring in the future. I'm sure the janitors can have a field day with
> that... :)
> 
> That said, who exactly is the userspace consumer for those
> 	typedef __kernel_dev_t	dev_t;
> defines? Can we just include them all in #ifdef __KERNEL__? 

That is exactly what we should do.

For what it's worth, not even klibc uses these types.

	-hpa	

-- 
H. Peter Anvin, Intel Open Source Technology Center
I work for Intel.  I don't speak on their behalf.


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [rfc] headers_check cleanups break the whole world
  2009-02-25  3:25 [rfc] headers_check cleanups break the whole world Kyle McMartin
  2009-02-25  6:24 ` H. Peter Anvin
@ 2009-02-25  6:56 ` Ingo Molnar
  2009-02-25  7:00   ` H. Peter Anvin
                     ` (2 more replies)
  1 sibling, 3 replies; 20+ messages in thread
From: Ingo Molnar @ 2009-02-25  6:56 UTC (permalink / raw)
  To: Kyle McMartin, Sam Ravnborg, Jaswinder Singh Rajput
  Cc: mingo, dwmw2, linux-kernel, hpa


* Kyle McMartin <kyle@infradead.org> wrote:

> [names omitted to protect the innocent, hpa@ on the CC wrt klibc maybe
>   using these? ]
> 
> Hi,
> 
> Commits like
> 
>     headers_check fix: foo.h
>     
>     fix the following 'make headers_check' warnings:
>       usr/include/linux/foo.h:29: include of <linux/types.h> is preferred
>       usr/include/linux/foo.h:102: found __[us]{8,16,32,64} type without
> 
> have proved problematic...
> 
> I've had to point out at least two userspace fixes[1] for a 
> variety of reasons that these patches exacerbated. Note 
> however that I didn't say they were wrong.
>
> The reason for this is you cannot intermix glibc header 
> <sys/*.h> includes with <linux/*.h> includes for most things 
> without defining the __KERNEL_STRICT_NAMES guard. If you fail 
> to define this, you end up with multiple definitions of things 
> like dev_t.
> 
> Software was able to get by, because things that used the 
> headers, dvb for example were not getting <linux/types.h> into 
> the include chain, because they were using <asm/types.h> 
> directly.
> 
> I propose we invert that logic, so the presumable libc that 
> makes use of the <linux/types.h> header can just define that 
> it wants these types. (test __KERNEL__ as well so the kernel 
> doesn't need a pointless
> #define.)
> 
> If this isn't tenable, how about moving the 
> {,__}[su]{8,16,32,64} integer types into their own header, so 
> we can avoid this mess ever occuring in the future. I'm sure 
> the janitors can have a field day with that... :)
> 
> That said, who exactly is the userspace consumer for those
> 	typedef __kernel_dev_t	dev_t;
> defines? Can we just include them all in #ifdef __KERNEL__?
> 
> Thoughts?
> 
> cheers, Kyle
> 
> 1. Ok, one of them was libcap playing utterly stupid games 
> with <linux/capability.h> and header guards, but it was 
> exacerbated by a similar patch...

Well, the intention is to clean up the situation somewhat.

__KERNEL_STRICT_NAMES is a really old construct that has been 
with us forever. It's not widely used ... i dont know how widely 
it's being relied on. Sam, should we get rid of it, or should 
user-space define __KERNEL_STRICT_NAMES in cases the glibc 
definition collides with the kernel's definition?

Note that if user-space is "playing utterly stupid games", it 
can cause trouble no matter what scheme we pick - so we have to 
filter out the reasonable problems that we should and can fix in 
the kernel.

	Ingo

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [rfc] headers_check cleanups break the whole world
  2009-02-25  6:56 ` Ingo Molnar
@ 2009-02-25  7:00   ` H. Peter Anvin
  2009-02-25  7:05   ` Kyle McMartin
  2009-02-25 11:34   ` [rfc] headers_check cleanups break the whole world Sam Ravnborg
  2 siblings, 0 replies; 20+ messages in thread
From: H. Peter Anvin @ 2009-02-25  7:00 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Kyle McMartin, Sam Ravnborg, Jaswinder Singh Rajput, mingo, dwmw2,
	linux-kernel

Ingo Molnar wrote:
> 
> Well, the intention is to clean up the situation somewhat.
> 
> __KERNEL_STRICT_NAMES is a really old construct that has been 
> with us forever. It's not widely used ... i dont know how widely 
> it's being relied on. Sam, should we get rid of it, or should 
> user-space define __KERNEL_STRICT_NAMES in cases the glibc 
> definition collides with the kernel's definition?
> 
> Note that if user-space is "playing utterly stupid games", it 
> can cause trouble no matter what scheme we pick - so we have to 
> filter out the reasonable problems that we should and can fix in 
> the kernel.
> 

__KERNEL_STRICT_NAMES is an anachronism that was put in to not break
libc5.  It has long outlived its usefulness, together with all the other
libc5 support crap in the kernel headers -- which do nothing but make
the kernel headers useless for any sane purposes.

Please let's just axe it.

	-hpa

-- 
H. Peter Anvin, Intel Open Source Technology Center
I work for Intel.  I don't speak on their behalf.


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [rfc] headers_check cleanups break the whole world
  2009-02-25  6:56 ` Ingo Molnar
  2009-02-25  7:00   ` H. Peter Anvin
@ 2009-02-25  7:05   ` Kyle McMartin
  2009-02-25  7:08     ` H. Peter Anvin
  2009-02-25 11:34   ` [rfc] headers_check cleanups break the whole world Sam Ravnborg
  2 siblings, 1 reply; 20+ messages in thread
From: Kyle McMartin @ 2009-02-25  7:05 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Kyle McMartin, Sam Ravnborg, Jaswinder Singh Rajput, mingo, dwmw2,
	linux-kernel, hpa

On Wed, Feb 25, 2009 at 07:56:32AM +0100, Ingo Molnar wrote:
> Note that if user-space is "playing utterly stupid games", it 
> can cause trouble no matter what scheme we pick - so we have to 
> filter out the reasonable problems that we should and can fix in 
> the kernel.
> 

Yeah, sorry, I should have been clearer, libcap does stupid
#define _LINUX_TYPES_H_
typedef unsigned int __u32;
#include <linux/header.h>

Which is just horribly broken when it's included early in a file and
then we try to #include <asm/sigcontext.h> (and doesn't get the rest
of those types since it now includes <linux/types.h> instead of
<asm/types.h>) (coreutils was doing this.)

The real case is something like using the dvb headers, which legitimately
is trying to include both <sys/*.h> and then <linux/dvb/*.h> and expecting
it to work.

The footnote in the prior mail was really just an example of why not
having just the plain __u32 et al types in their own header.

regards, Kyle

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [rfc] headers_check cleanups break the whole world
  2009-02-25  7:05   ` Kyle McMartin
@ 2009-02-25  7:08     ` H. Peter Anvin
  2009-02-25  7:13       ` Kyle McMartin
  0 siblings, 1 reply; 20+ messages in thread
From: H. Peter Anvin @ 2009-02-25  7:08 UTC (permalink / raw)
  To: Kyle McMartin
  Cc: Ingo Molnar, Sam Ravnborg, Jaswinder Singh Rajput, mingo, dwmw2,
	linux-kernel, Arnd Bergmann

Kyle McMartin wrote:
> 
> Yeah, sorry, I should have been clearer, libcap does stupid
> #define _LINUX_TYPES_H_
> typedef unsigned int __u32;
> #include <linux/header.h>
> 
> Which is just horribly broken when it's included early in a file and
> then we try to #include <asm/sigcontext.h> (and doesn't get the rest
> of those types since it now includes <linux/types.h> instead of
> <asm/types.h>) (coreutils was doing this.)
> 
> The real case is something like using the dvb headers, which legitimately
> is trying to include both <sys/*.h> and then <linux/dvb/*.h> and expecting
> it to work.
> 
> The footnote in the prior mail was really just an example of why not
> having just the plain __u32 et al types in their own header.
> 

Because <linux/types.h> should work just fine once we get rid of the
__KERNEL_STRICT_NAMES idiocy?

FWIW, Arnd Bergmann has been working on exactly this cleanup.

	-hpa

-- 
H. Peter Anvin, Intel Open Source Technology Center
I work for Intel.  I don't speak on their behalf.


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [rfc] headers_check cleanups break the whole world
  2009-02-25  7:08     ` H. Peter Anvin
@ 2009-02-25  7:13       ` Kyle McMartin
  2009-02-25  7:16         ` H. Peter Anvin
  0 siblings, 1 reply; 20+ messages in thread
From: Kyle McMartin @ 2009-02-25  7:13 UTC (permalink / raw)
  To: H. Peter Anvin
  Cc: Kyle McMartin, Ingo Molnar, Sam Ravnborg, Jaswinder Singh Rajput,
	mingo, dwmw2, linux-kernel, Arnd Bergmann

On Tue, Feb 24, 2009 at 11:08:53PM -0800, H. Peter Anvin wrote:
> Because <linux/types.h> should work just fine once we get rid of the
> __KERNEL_STRICT_NAMES idiocy?
> 
> FWIW, Arnd Bergmann has been working on exactly this cleanup.
> 

Ah good, I was about to cook a patch, then I realized there's probably
quite a mess of userspace things depending on, say, sector_t and such.

This is a pretty ugly problem, all things considered. :/

regards, Kyle

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [rfc] headers_check cleanups break the whole world
  2009-02-25  7:13       ` Kyle McMartin
@ 2009-02-25  7:16         ` H. Peter Anvin
  2009-02-25  7:22           ` Kyle McMartin
  0 siblings, 1 reply; 20+ messages in thread
From: H. Peter Anvin @ 2009-02-25  7:16 UTC (permalink / raw)
  To: Kyle McMartin
  Cc: Ingo Molnar, Sam Ravnborg, Jaswinder Singh Rajput, mingo, dwmw2,
	linux-kernel, Arnd Bergmann

Kyle McMartin wrote:
> On Tue, Feb 24, 2009 at 11:08:53PM -0800, H. Peter Anvin wrote:
>> Because <linux/types.h> should work just fine once we get rid of the
>> __KERNEL_STRICT_NAMES idiocy?
>>
>> FWIW, Arnd Bergmann has been working on exactly this cleanup.
>>
> 
> Ah good, I was about to cook a patch, then I realized there's probably
> quite a mess of userspace things depending on, say, sector_t and such.
> 
> This is a pretty ugly problem, all things considered. :/
> 

Not all that bad, actually.

This is the last patch I've seen on the subject:

http://marc.info/?i=200902051707.55457.arnd@arndb.de

	-hpa

-- 
H. Peter Anvin, Intel Open Source Technology Center
I work for Intel.  I don't speak on their behalf.


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [rfc] headers_check cleanups break the whole world
  2009-02-25  7:16         ` H. Peter Anvin
@ 2009-02-25  7:22           ` Kyle McMartin
  2009-02-25 18:17             ` [PATCH] Make exported headers use strict posix types Arnd Bergmann
  0 siblings, 1 reply; 20+ messages in thread
From: Kyle McMartin @ 2009-02-25  7:22 UTC (permalink / raw)
  To: H. Peter Anvin
  Cc: Kyle McMartin, Ingo Molnar, Sam Ravnborg, Jaswinder Singh Rajput,
	mingo, dwmw2, linux-kernel, Arnd Bergmann

On Tue, Feb 24, 2009 at 11:16:33PM -0800, H. Peter Anvin wrote:
> Not all that bad, actually.
> 
> This is the last patch I've seen on the subject:
> 
> http://marc.info/?i=200902051707.55457.arnd@arndb.de
> 

Ah, excellent. I must have missed it (looks like Arnd didn't send it to
linux-arch@ as well. :)

Big ACK from me.

regards, Kyle

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [rfc] headers_check cleanups break the whole world
  2009-02-25  6:56 ` Ingo Molnar
  2009-02-25  7:00   ` H. Peter Anvin
  2009-02-25  7:05   ` Kyle McMartin
@ 2009-02-25 11:34   ` Sam Ravnborg
  2 siblings, 0 replies; 20+ messages in thread
From: Sam Ravnborg @ 2009-02-25 11:34 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Kyle McMartin, Jaswinder Singh Rajput, mingo, dwmw2, linux-kernel,
	hpa

> 
> __KERNEL_STRICT_NAMES is a really old construct that has been 
> with us forever. It's not widely used ... i dont know how widely 
> it's being relied on. Sam, should we get rid of it, or should 
> user-space define __KERNEL_STRICT_NAMES in cases the glibc 
> definition collides with the kernel's definition?

hpa already answered this question and he knows
the userland<->kernel stuff better than I do.

IMO the best thing would be that Arnd rebased his original patch
and we get that rewieved and in the end applied.

	Sam

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [PATCH] Make exported headers use strict posix types
  2009-02-25  7:22           ` Kyle McMartin
@ 2009-02-25 18:17             ` Arnd Bergmann
  2009-02-25 20:11               ` Sam Ravnborg
  0 siblings, 1 reply; 20+ messages in thread
From: Arnd Bergmann @ 2009-02-25 18:17 UTC (permalink / raw)
  To: Kyle McMartin
  Cc: H. Peter Anvin, Ingo Molnar, Sam Ravnborg, Jaswinder Singh Rajput,
	mingo, dwmw2, linux-kernel, linux-arch

A number of standard posix types are used in exported headers, which
is not allowed if __STRICT_KERNEL_NAMES is defined. In order to
get rid of the non-__STRICT_KERNEL_NAMES part and to make sane headers
the default, we have to change them all to safe types.

There are also still some leftovers in reiserfs_fs.h, elfcore.h
and coda.h, but these files have not compiled in user space for
a long time.

This leaves out the various integer types (u_int32_t, uint32_t, u32,
uint and the signed and 8/16/64 bit variants thereof), which we may
want to do in an automated script instead.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
On Wednesday 25 February 2009, Kyle McMartin wrote:
> On Tue, Feb 24, 2009 at 11:16:33PM -0800, H. Peter Anvin wrote:
> > Not all that bad, actually.
> > 
> > This is the last patch I've seen on the subject:
> > 
> > http://marc.info/?i=200902051707.55457.arnd@arndb.de
> > 
> 
> Ah, excellent. I must have missed it (looks like Arnd didn't send it to
> linux-arch@ as well. :)

This is my previous patch, ported to today's git. It's my last day
before my vacation, so I can't do the usual testing etc. on it.
Hopefully somebody else can take care of this.

	Arnd <><

diff --git a/include/asm-generic/fcntl.h b/include/asm-generic/fcntl.h
index b847741..4d3e483 100644
--- a/include/asm-generic/fcntl.h
+++ b/include/asm-generic/fcntl.h
@@ -117,9 +117,9 @@
 struct flock {
 	short	l_type;
 	short	l_whence;
-	off_t	l_start;
-	off_t	l_len;
-	pid_t	l_pid;
+	__kernel_off_t	l_start;
+	__kernel_off_t	l_len;
+	__kernel_pid_t	l_pid;
 	__ARCH_FLOCK_PAD
 };
 #endif
@@ -140,9 +140,9 @@ struct flock {
 struct flock64 {
 	short  l_type;
 	short  l_whence;
-	loff_t l_start;
-	loff_t l_len;
-	pid_t  l_pid;
+	__kernel_loff_t l_start;
+	__kernel_loff_t l_len;
+	__kernel_pid_t  l_pid;
 	__ARCH_FLOCK64_PAD
 };
 #endif
diff --git a/include/asm-generic/siginfo.h b/include/asm-generic/siginfo.h
index 9695701..35f75a3 100644
--- a/include/asm-generic/siginfo.h
+++ b/include/asm-generic/siginfo.h
@@ -23,7 +23,7 @@ typedef union sigval {
 #endif
 
 #ifndef __ARCH_SI_UID_T
-#define __ARCH_SI_UID_T	uid_t
+#define __ARCH_SI_UID_T	__kernel_uid_t
 #endif
 
 /*
@@ -47,13 +47,13 @@ typedef struct siginfo {
 
 		/* kill() */
 		struct {
-			pid_t _pid;		/* sender's pid */
+			__kernel_pid_t _pid;	/* sender's pid */
 			__ARCH_SI_UID_T _uid;	/* sender's uid */
 		} _kill;
 
 		/* POSIX.1b timers */
 		struct {
-			timer_t _tid;		/* timer id */
+			__kernel_timer_t _tid;	/* timer id */
 			int _overrun;		/* overrun count */
 			char _pad[sizeof( __ARCH_SI_UID_T) - sizeof(int)];
 			sigval_t _sigval;	/* same as below */
@@ -62,18 +62,18 @@ typedef struct siginfo {
 
 		/* POSIX.1b signals */
 		struct {
-			pid_t _pid;		/* sender's pid */
+			__kernel_pid_t _pid;	/* sender's pid */
 			__ARCH_SI_UID_T _uid;	/* sender's uid */
 			sigval_t _sigval;
 		} _rt;
 
 		/* SIGCHLD */
 		struct {
-			pid_t _pid;		/* which child */
+			__kernel_pid_t _pid;	/* which child */
 			__ARCH_SI_UID_T _uid;	/* sender's uid */
 			int _status;		/* exit code */
-			clock_t _utime;
-			clock_t _stime;
+			__kernel_clock_t _utime;
+			__kernel_clock_t _stime;
 		} _sigchld;
 
 		/* SIGILL, SIGFPE, SIGSEGV, SIGBUS */
diff --git a/include/linux/agpgart.h b/include/linux/agpgart.h
index 110c600..f6778ec 100644
--- a/include/linux/agpgart.h
+++ b/include/linux/agpgart.h
@@ -77,20 +77,20 @@ typedef struct _agp_setup {
  * The "prot" down below needs still a "sleep" flag somehow ...
  */
 typedef struct _agp_segment {
-	off_t pg_start;		/* starting page to populate    */
-	size_t pg_count;	/* number of pages              */
-	int prot;		/* prot flags for mmap          */
+	__kernel_off_t pg_start;	/* starting page to populate    */
+	__kernel_size_t pg_count;	/* number of pages              */
+	int prot;			/* prot flags for mmap          */
 } agp_segment;
 
 typedef struct _agp_region {
-	pid_t pid;		/* pid of process               */
-	size_t seg_count;	/* number of segments           */
+	__kernel_pid_t pid;		/* pid of process       */
+	__kernel_size_t seg_count;	/* number of segments   */
 	struct _agp_segment *seg_list;
 } agp_region;
 
 typedef struct _agp_allocate {
 	int key;		/* tag of allocation            */
-	size_t pg_count;	/* number of pages              */
+	__kernel_size_t pg_count;/* number of pages             */
 	__u32 type;		/* 0 == normal, other devspec   */
    	__u32 physical;         /* device specific (some devices  
 				 * need a phys address of the     
@@ -100,7 +100,7 @@ typedef struct _agp_allocate {
 
 typedef struct _agp_bind {
 	int key;		/* tag of allocation            */
-	off_t pg_start;		/* starting page to populate    */
+	__kernel_off_t pg_start;/* starting page to populate    */
 } agp_bind;
 
 typedef struct _agp_unbind {
diff --git a/include/linux/cn_proc.h b/include/linux/cn_proc.h
index 1c86d65..b8125b2 100644
--- a/include/linux/cn_proc.h
+++ b/include/linux/cn_proc.h
@@ -65,20 +65,20 @@ struct proc_event {
 		} ack;
 
 		struct fork_proc_event {
-			pid_t parent_pid;
-			pid_t parent_tgid;
-			pid_t child_pid;
-			pid_t child_tgid;
+			__kernel_pid_t parent_pid;
+			__kernel_pid_t parent_tgid;
+			__kernel_pid_t child_pid;
+			__kernel_pid_t child_tgid;
 		} fork;
 
 		struct exec_proc_event {
-			pid_t process_pid;
-			pid_t process_tgid;
+			__kernel_pid_t process_pid;
+			__kernel_pid_t process_tgid;
 		} exec;
 
 		struct id_proc_event {
-			pid_t process_pid;
-			pid_t process_tgid;
+			__kernel_pid_t process_pid;
+			__kernel_pid_t process_tgid;
 			union {
 				__u32 ruid; /* task uid */
 				__u32 rgid; /* task gid */
@@ -90,8 +90,8 @@ struct proc_event {
 		} id;
 
 		struct exit_proc_event {
-			pid_t process_pid;
-			pid_t process_tgid;
+			__kernel_pid_t process_pid;
+			__kernel_pid_t process_tgid;
 			__u32 exit_code, exit_signal;
 		} exit;
 	} event_data;
diff --git a/include/linux/coda_psdev.h b/include/linux/coda_psdev.h
index 07ae8f8..ebdc055 100644
--- a/include/linux/coda_psdev.h
+++ b/include/linux/coda_psdev.h
@@ -6,6 +6,7 @@
 #define CODA_PSDEV_MAJOR 67
 #define MAX_CODADEVS  5	   /* how many do we allow */
 
+#ifdef __KERNEL__
 struct kstatfs;
 
 /* communication pending/processing queues */
@@ -89,4 +90,5 @@ struct upc_req {
 
 extern struct venus_comm coda_comms[];
 
+#endif /* __KERNEL__ */
 #endif
diff --git a/include/linux/compiler-gcc4.h b/include/linux/compiler-gcc4.h
index 0999271..f6dcc29 100644
--- a/include/linux/compiler-gcc4.h
+++ b/include/linux/compiler-gcc4.h
@@ -4,7 +4,7 @@
 
 /* GCC 4.1.[01] miscompiles __weak */
 #if __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ <= 1
-# error Your version of gcc miscompiles the __weak directive
+// # error Your version of gcc miscompiles the __weak directive
 #endif
 
 #define __used			__attribute__((__used__))
diff --git a/include/linux/cyclades.h b/include/linux/cyclades.h
index d06fbf2..788850b 100644
--- a/include/linux/cyclades.h
+++ b/include/linux/cyclades.h
@@ -82,9 +82,9 @@ struct cyclades_monitor {
  * open)
  */
 struct cyclades_idle_stats {
-    time_t	   in_use;	/* Time device has been in use (secs) */
-    time_t	   recv_idle;	/* Time since last char received (secs) */
-    time_t	   xmit_idle;	/* Time since last char transmitted (secs) */
+    __kernel_time_t in_use;	/* Time device has been in use (secs) */
+    __kernel_time_t recv_idle;	/* Time since last char received (secs) */
+    __kernel_time_t xmit_idle;	/* Time since last char transmitted (secs) */
     unsigned long  recv_bytes;	/* Bytes received */
     unsigned long  xmit_bytes;	/* Bytes transmitted */
     unsigned long  overruns;	/* Input overruns */
diff --git a/include/linux/dvb/video.h b/include/linux/dvb/video.h
index bd49c3e..ee5d2df 100644
--- a/include/linux/dvb/video.h
+++ b/include/linux/dvb/video.h
@@ -137,7 +137,7 @@ struct video_event {
 #define VIDEO_EVENT_FRAME_RATE_CHANGED	2
 #define VIDEO_EVENT_DECODER_STOPPED 	3
 #define VIDEO_EVENT_VSYNC 		4
-	time_t timestamp;
+	__kernel_time_t timestamp;
 	union {
 		video_size_t size;
 		unsigned int frame_rate;	/* in frames per 1000sec */
diff --git a/include/linux/if_pppol2tp.h b/include/linux/if_pppol2tp.h
index c7a6688..3a14b08 100644
--- a/include/linux/if_pppol2tp.h
+++ b/include/linux/if_pppol2tp.h
@@ -26,7 +26,7 @@
  */
 struct pppol2tp_addr
 {
-	pid_t	pid;			/* pid that owns the fd.
+	__kernel_pid_t	pid;		/* pid that owns the fd.
 					 * 0 => current */
 	int	fd;			/* FD of UDP socket to use */
 
diff --git a/include/linux/mroute6.h b/include/linux/mroute6.h
index 5375fac..43dc97e 100644
--- a/include/linux/mroute6.h
+++ b/include/linux/mroute6.h
@@ -65,7 +65,7 @@ struct mif6ctl {
 	mifi_t	mif6c_mifi;		/* Index of MIF */
 	unsigned char mif6c_flags;	/* MIFF_ flags */
 	unsigned char vifc_threshold;	/* ttl limit */
-	u_short	 mif6c_pifi;		/* the index of the physical IF */
+	__u16	 mif6c_pifi;		/* the index of the physical IF */
 	unsigned int vifc_rate_limit;	/* Rate limiter values (NI) */
 };
 
diff --git a/include/linux/netfilter_ipv4/ipt_owner.h b/include/linux/netfilter_ipv4/ipt_owner.h
index 92f4bda..60e941f 100644
--- a/include/linux/netfilter_ipv4/ipt_owner.h
+++ b/include/linux/netfilter_ipv4/ipt_owner.h
@@ -9,10 +9,10 @@
 #define IPT_OWNER_COMM	0x10
 
 struct ipt_owner_info {
-    uid_t uid;
-    gid_t gid;
-    pid_t pid;
-    pid_t sid;
+    __kernel_uid_t uid;
+    __kernel_gid_t gid;
+    __kernel_pid_t pid;
+    __kernel_pid_t sid;
     char comm[16];
     u_int8_t match, invert;	/* flags */
 };
diff --git a/include/linux/netfilter_ipv6/ip6t_owner.h b/include/linux/netfilter_ipv6/ip6t_owner.h
index 19937da..dc2cbcb 100644
--- a/include/linux/netfilter_ipv6/ip6t_owner.h
+++ b/include/linux/netfilter_ipv6/ip6t_owner.h
@@ -8,10 +8,10 @@
 #define IP6T_OWNER_SID	0x08
 
 struct ip6t_owner_info {
-    uid_t uid;
-    gid_t gid;
-    pid_t pid;
-    pid_t sid;
+    __kernel_uid_t uid;
+    __kernel_gid_t gid;
+    __kernel_pid_t pid;
+    __kernel_pid_t sid;
     u_int8_t match, invert;	/* flags */
 };
 
diff --git a/include/linux/ppp_defs.h b/include/linux/ppp_defs.h
index 1c866bd..0f93ed6 100644
--- a/include/linux/ppp_defs.h
+++ b/include/linux/ppp_defs.h
@@ -177,8 +177,8 @@ struct ppp_comp_stats {
  * the last NP packet was sent or received.
  */
 struct ppp_idle {
-    time_t xmit_idle;		/* time since last NP packet sent */
-    time_t recv_idle;		/* time since last NP packet received */
+    __kernel_time_t xmit_idle;	/* time since last NP packet sent */
+    __kernel_time_t recv_idle;	/* time since last NP packet received */
 };
 
 #endif /* _PPP_DEFS_H_ */
diff --git a/include/linux/suspend_ioctls.h b/include/linux/suspend_ioctls.h
index 2c6faec..40d4605 100644
--- a/include/linux/suspend_ioctls.h
+++ b/include/linux/suspend_ioctls.h
@@ -7,8 +7,8 @@
  * SNAPSHOT_SET_SWAP_AREA ioctl
  */
 struct resume_swap_area {
-	loff_t offset;
-	u_int32_t dev;
+	__kernel_loff_t offset;
+	__u32 dev;
 } __attribute__((packed));
 
 #define SNAPSHOT_IOC_MAGIC	'3'
@@ -20,13 +20,13 @@ struct resume_swap_area {
 #define SNAPSHOT_S2RAM			_IO(SNAPSHOT_IOC_MAGIC, 11)
 #define SNAPSHOT_SET_SWAP_AREA		_IOW(SNAPSHOT_IOC_MAGIC, 13, \
 							struct resume_swap_area)
-#define SNAPSHOT_GET_IMAGE_SIZE		_IOR(SNAPSHOT_IOC_MAGIC, 14, loff_t)
+#define SNAPSHOT_GET_IMAGE_SIZE		_IOR(SNAPSHOT_IOC_MAGIC, 14, __kernel_loff_t)
 #define SNAPSHOT_PLATFORM_SUPPORT	_IO(SNAPSHOT_IOC_MAGIC, 15)
 #define SNAPSHOT_POWER_OFF		_IO(SNAPSHOT_IOC_MAGIC, 16)
 #define SNAPSHOT_CREATE_IMAGE		_IOW(SNAPSHOT_IOC_MAGIC, 17, int)
 #define SNAPSHOT_PREF_IMAGE_SIZE	_IO(SNAPSHOT_IOC_MAGIC, 18)
-#define SNAPSHOT_AVAIL_SWAP_SIZE	_IOR(SNAPSHOT_IOC_MAGIC, 19, loff_t)
-#define SNAPSHOT_ALLOC_SWAP_PAGE	_IOR(SNAPSHOT_IOC_MAGIC, 20, loff_t)
+#define SNAPSHOT_AVAIL_SWAP_SIZE	_IOR(SNAPSHOT_IOC_MAGIC, 19, __kernel_loff_t)
+#define SNAPSHOT_ALLOC_SWAP_PAGE	_IOR(SNAPSHOT_IOC_MAGIC, 20, __kernel_loff_t)
 #define SNAPSHOT_IOC_MAXNR	20
 
 #endif /* _LINUX_SUSPEND_IOCTLS_H */
diff --git a/include/linux/time.h b/include/linux/time.h
index fbbd2a1..242f624 100644
--- a/include/linux/time.h
+++ b/include/linux/time.h
@@ -12,14 +12,14 @@
 #ifndef _STRUCT_TIMESPEC
 #define _STRUCT_TIMESPEC
 struct timespec {
-	time_t	tv_sec;		/* seconds */
-	long	tv_nsec;	/* nanoseconds */
+	__kernel_time_t	tv_sec;			/* seconds */
+	long		tv_nsec;		/* nanoseconds */
 };
 #endif
 
 struct timeval {
-	time_t		tv_sec;		/* seconds */
-	suseconds_t	tv_usec;	/* microseconds */
+	__kernel_time_t		tv_sec;		/* seconds */
+	__kernel_suseconds_t	tv_usec;	/* microseconds */
 };
 
 struct timezone {
diff --git a/include/linux/times.h b/include/linux/times.h
index e2d3020..87b6261 100644
--- a/include/linux/times.h
+++ b/include/linux/times.h
@@ -4,10 +4,10 @@
 #include <linux/types.h>
 
 struct tms {
-	clock_t tms_utime;
-	clock_t tms_stime;
-	clock_t tms_cutime;
-	clock_t tms_cstime;
+	__kernel_clock_t tms_utime;
+	__kernel_clock_t tms_stime;
+	__kernel_clock_t tms_cutime;
+	__kernel_clock_t tms_cstime;
 };
 
 #endif
diff --git a/include/linux/utime.h b/include/linux/utime.h
index 640be6a..5cdf673 100644
--- a/include/linux/utime.h
+++ b/include/linux/utime.h
@@ -4,8 +4,8 @@
 #include <linux/types.h>
 
 struct utimbuf {
-	time_t actime;
-	time_t modtime;
+	__kernel_time_t actime;
+	__kernel_time_t modtime;
 };
 
 #endif
diff --git a/include/linux/xfrm.h b/include/linux/xfrm.h
index 52f3abd..a58fe2b 100644
--- a/include/linux/xfrm.h
+++ b/include/linux/xfrm.h
@@ -58,7 +58,7 @@ struct xfrm_selector
 	__u8	prefixlen_s;
 	__u8	proto;
 	int	ifindex;
-	uid_t	user;
+	__kernel_uid_t	user;
 };
 
 #define XFRM_INF (~(__u64)0)
diff --git a/include/mtd/mtd-abi.h b/include/mtd/mtd-abi.h
index c6c61cd..fb67201 100644
--- a/include/mtd/mtd-abi.h
+++ b/include/mtd/mtd-abi.h
@@ -84,8 +84,8 @@ struct otp_info {
 #define MEMGETREGIONINFO	_IOWR('M', 8, struct region_info_user)
 #define MEMSETOOBSEL		_IOW('M', 9, struct nand_oobinfo)
 #define MEMGETOOBSEL		_IOR('M', 10, struct nand_oobinfo)
-#define MEMGETBADBLOCK		_IOW('M', 11, loff_t)
-#define MEMSETBADBLOCK		_IOW('M', 12, loff_t)
+#define MEMGETBADBLOCK		_IOW('M', 11, __kernel_loff_t)
+#define MEMSETBADBLOCK		_IOW('M', 12, __kernel_loff_t)
 #define OTPSELECT		_IOR('M', 13, int)
 #define OTPGETREGIONCOUNT	_IOW('M', 14, int)
 #define OTPGETREGIONINFO	_IOW('M', 15, struct otp_info)
diff --git a/include/sound/asound.h b/include/sound/asound.h
index 1c02ed1..16684c5 100644
--- a/include/sound/asound.h
+++ b/include/sound/asound.h
@@ -385,7 +385,7 @@ struct snd_pcm_sw_params {
 
 struct snd_pcm_channel_info {
 	unsigned int channel;
-	off_t offset;			/* mmap offset */
+	__kernel_off_t offset;		/* mmap offset */
 	unsigned int first;		/* offset to first sample in bits */
 	unsigned int step;		/* samples distance in bits */
 };
@@ -789,7 +789,7 @@ struct snd_ctl_elem_info {
 	snd_ctl_elem_type_t type;	/* R: value type - SNDRV_CTL_ELEM_TYPE_* */
 	unsigned int access;		/* R: value access (bitmask) - SNDRV_CTL_ELEM_ACCESS_* */
 	unsigned int count;		/* count of values */
-	pid_t owner;			/* owner's PID of this control */
+	__kernel_pid_t owner;		/* owner's PID of this control */
 	union {
 		struct {
 			long min;		/* R: minimum value */

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* Re: [PATCH] Make exported headers use strict posix types
  2009-02-25 18:17             ` [PATCH] Make exported headers use strict posix types Arnd Bergmann
@ 2009-02-25 20:11               ` Sam Ravnborg
  2009-02-25 21:42                 ` Arnd Bergmann
                                   ` (2 more replies)
  0 siblings, 3 replies; 20+ messages in thread
From: Sam Ravnborg @ 2009-02-25 20:11 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Kyle McMartin, H. Peter Anvin, Ingo Molnar,
	Jaswinder Singh Rajput, mingo, dwmw2, linux-kernel, linux-arch

On Wed, Feb 25, 2009 at 07:17:47PM +0100, Arnd Bergmann wrote:
> A number of standard posix types are used in exported headers, which
> is not allowed if __STRICT_KERNEL_NAMES is defined. In order to
> get rid of the non-__STRICT_KERNEL_NAMES part and to make sane headers
> the default, we have to change them all to safe types.
> 
> There are also still some leftovers in reiserfs_fs.h, elfcore.h
> and coda.h, but these files have not compiled in user space for
> a long time.
> 
> This leaves out the various integer types (u_int32_t, uint32_t, u32,
> uint and the signed and 8/16/64 bit variants thereof), which we may
> want to do in an automated script instead.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
> 
> This is my previous patch, ported to today's git. It's my last day
> before my vacation, so I can't do the usual testing etc. on it.
> Hopefully somebody else can take care of this.

I hesitate to put it in kbuild.git... Any better place?

> diff --git a/include/linux/coda_psdev.h b/include/linux/coda_psdev.h
> index 07ae8f8..ebdc055 100644
> --- a/include/linux/coda_psdev.h
> +++ b/include/linux/coda_psdev.h
> @@ -6,6 +6,7 @@
>  #define CODA_PSDEV_MAJOR 67
>  #define MAX_CODADEVS  5	   /* how many do we allow */
>  
> +#ifdef __KERNEL__
>  struct kstatfs;
>  
>  /* communication pending/processing queues */
> @@ -89,4 +90,5 @@ struct upc_req {
>  
>  extern struct venus_comm coda_comms[];
>  
> +#endif /* __KERNEL__ */
>  #endif

Does this change really belong in this patchset?

> diff --git a/include/linux/compiler-gcc4.h b/include/linux/compiler-gcc4.h
> index 0999271..f6dcc29 100644
> --- a/include/linux/compiler-gcc4.h
> +++ b/include/linux/compiler-gcc4.h
> @@ -4,7 +4,7 @@
>  
>  /* GCC 4.1.[01] miscompiles __weak */
>  #if __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ <= 1
> -# error Your version of gcc miscompiles the __weak directive
> +// # error Your version of gcc miscompiles the __weak directive
>  #endif
>  
>  #define __used			__attribute__((__used__))

Yes - I can build kernels again. But I think we should skip this change..

> diff --git a/include/linux/mroute6.h b/include/linux/mroute6.h
> index 5375fac..43dc97e 100644
> --- a/include/linux/mroute6.h
> +++ b/include/linux/mroute6.h
> @@ -65,7 +65,7 @@ struct mif6ctl {
>  	mifi_t	mif6c_mifi;		/* Index of MIF */
>  	unsigned char mif6c_flags;	/* MIFF_ flags */
>  	unsigned char vifc_threshold;	/* ttl limit */
> -	u_short	 mif6c_pifi;		/* the index of the physical IF */
> +	__u16	 mif6c_pifi;		/* the index of the physical IF */
>  	unsigned int vifc_rate_limit;	/* Rate limiter values (NI) */
>  };
>  
This change looks correct - but I assume this is a separate patch.

Rest looks good.

	Sam

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH] Make exported headers use strict posix types
  2009-02-25 20:11               ` Sam Ravnborg
@ 2009-02-25 21:42                 ` Arnd Bergmann
  2009-02-25 21:58                 ` Arnd Bergmann
  2009-02-25 23:07                 ` H. Peter Anvin
  2 siblings, 0 replies; 20+ messages in thread
From: Arnd Bergmann @ 2009-02-25 21:42 UTC (permalink / raw)
  To: Sam Ravnborg
  Cc: Kyle McMartin, H. Peter Anvin, Ingo Molnar,
	Jaswinder Singh Rajput, mingo, dwmw2, linux-kernel, linux-arch

On Wednesday 25 February 2009, Sam Ravnborg wrote:

 
> Does this change really belong in this patchset?
 
> Yes - I can build kernels again. But I think we should skip this change..

> This change looks correct - but I assume this is a separate patch.
> 
> Rest looks good.

Agreed on all points, I had the changes sitting in a dirty git tree
and got sloppy. Thanks for looking through it!

	Arnd <><

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH] Make exported headers use strict posix types
  2009-02-25 20:11               ` Sam Ravnborg
  2009-02-25 21:42                 ` Arnd Bergmann
@ 2009-02-25 21:58                 ` Arnd Bergmann
  2009-02-25 22:07                   ` H. Peter Anvin
  2009-02-25 23:07                 ` H. Peter Anvin
  2 siblings, 1 reply; 20+ messages in thread
From: Arnd Bergmann @ 2009-02-25 21:58 UTC (permalink / raw)
  To: Sam Ravnborg
  Cc: Kyle McMartin, H. Peter Anvin, Ingo Molnar,
	Jaswinder Singh Rajput, mingo, dwmw2, linux-kernel, linux-arch

On Wednesday 25 February 2009, Sam Ravnborg wrote:
> > diff --git a/include/linux/mroute6.h b/include/linux/mroute6.h
> > index 5375fac..43dc97e 100644
> > --- a/include/linux/mroute6.h
> > +++ b/include/linux/mroute6.h
> > @@ -65,7 +65,7 @@ struct mif6ctl {
> >       mifi_t  mif6c_mifi;             /* Index of MIF */
> >       unsigned char mif6c_flags;      /* MIFF_ flags */
> >       unsigned char vifc_threshold;   /* ttl limit */
> > -     u_short  mif6c_pifi;            /* the index of the physical IF */
> > +     __u16    mif6c_pifi;            /* the index of the physical IF */
> >       unsigned int vifc_rate_limit;   /* Rate limiter values (NI) */
> >  };
> >  
> This change looks correct - but I assume this is a separate patch.
> 

Actually, this change does belong in here: This is the only user of u_short
in exported headers, and nothing uses u_char, u_int or u_long, so it gets
rid of a whole class of types. The only questionable types left after this
are the standard stdint.h types, many of which are probably legitimate:

grep '\<\(u_\|u\|\)int\(8\|16\|32\|64\)_t\>' obj/usr/include/ -r | \
		 cut -f 1 -d: | uniq -c | grep -v netfilter
      2 obj/usr/include/linux/atmlec.h
     13 obj/usr/include/linux/jffs2.h
      1 obj/usr/include/linux/ivtvfb.h
     12 obj/usr/include/linux/types.h
    121 obj/usr/include/linux/pfkeyv2.h
     13 obj/usr/include/linux/ip_vs.h
     21 obj/usr/include/linux/dm-ioctl.h
      4 obj/usr/include/linux/cm4000_cs.h
      8 obj/usr/include/linux/dlm_netlink.h
      2 obj/usr/include/linux/selinux_netlink.h
     11 obj/usr/include/linux/dvb/video.h
      1 obj/usr/include/linux/dvb/audio.h
     22 obj/usr/include/linux/atmmpc.h
     23 obj/usr/include/linux/coda.h
      1 obj/usr/include/linux/matroxfb.h
     13 obj/usr/include/linux/if_arcnet.h
      8 obj/usr/include/drm/mga_drm.h
      1 obj/usr/include/drm/radeon_drm.h
     20 obj/usr/include/drm/via_drm.h
      9 obj/usr/include/drm/drm.h
     74 obj/usr/include/drm/drm_mode.h
     69 obj/usr/include/drm/i915_drm.h
     15 obj/usr/include/mtd/nftl-user.h
      2 obj/usr/include/mtd/jffs2-user.h
     18 obj/usr/include/mtd/inftl-user.h
     32 obj/usr/include/mtd/mtd-abi.h
     35 obj/usr/include/mtd/ubi-user.h
      4 obj/usr/include/sound/emu10k1.h
      1 obj/usr/include/sound/asound.h

	Arnd <><

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH] Make exported headers use strict posix types
  2009-02-25 21:58                 ` Arnd Bergmann
@ 2009-02-25 22:07                   ` H. Peter Anvin
  2009-02-25 22:39                     ` David Woodhouse
  0 siblings, 1 reply; 20+ messages in thread
From: H. Peter Anvin @ 2009-02-25 22:07 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Sam Ravnborg, Kyle McMartin, Ingo Molnar, Jaswinder Singh Rajput,
	mingo, dwmw2, linux-kernel, linux-arch

Arnd Bergmann wrote:
> 
> Actually, this change does belong in here: This is the only user of u_short
> in exported headers, and nothing uses u_char, u_int or u_long, so it gets
> rid of a whole class of types. The only questionable types left after this
> are the standard stdint.h types, many of which are probably legitimate:
> 

Not legitimate in *exported* headers.

	-hpa

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH] Make exported headers use strict posix types
  2009-02-25 22:07                   ` H. Peter Anvin
@ 2009-02-25 22:39                     ` David Woodhouse
  2009-02-25 23:58                       ` H. Peter Anvin
  0 siblings, 1 reply; 20+ messages in thread
From: David Woodhouse @ 2009-02-25 22:39 UTC (permalink / raw)
  To: H. Peter Anvin
  Cc: Arnd Bergmann, Sam Ravnborg, Kyle McMartin, Ingo Molnar,
	Jaswinder Singh Rajput, mingo, linux-kernel, linux-arch

On Wed, 2009-02-25 at 14:07 -0800, H. Peter Anvin wrote:
> Arnd Bergmann wrote:
> > 
> > Actually, this change does belong in here: This is the only user of u_short
> > in exported headers, and nothing uses u_char, u_int or u_long, so it gets
> > rid of a whole class of types. The only questionable types left after this
> > are the standard stdint.h types, many of which are probably legitimate:
> > 
> 
> Not legitimate in *exported* headers.

Not in the ones which might be included implicitly by glibc, perhaps --
but other non-POSIX headers are perfectly entitled to require C standard
types, surely?

-- 
David Woodhouse                            Open Source Technology Centre
David.Woodhouse@intel.com                              Intel Corporation


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH] Make exported headers use strict posix types
  2009-02-25 20:11               ` Sam Ravnborg
  2009-02-25 21:42                 ` Arnd Bergmann
  2009-02-25 21:58                 ` Arnd Bergmann
@ 2009-02-25 23:07                 ` H. Peter Anvin
  2009-02-26  0:01                   ` Arnd Bergmann
  2 siblings, 1 reply; 20+ messages in thread
From: H. Peter Anvin @ 2009-02-25 23:07 UTC (permalink / raw)
  To: Sam Ravnborg
  Cc: Arnd Bergmann, Kyle McMartin, Ingo Molnar, Jaswinder Singh Rajput,
	mingo, dwmw2, linux-kernel, linux-arch

Sam Ravnborg wrote:
>>
>> This is my previous patch, ported to today's git. It's my last day
>> before my vacation, so I can't do the usual testing etc. on it.
>> Hopefully somebody else can take care of this.
> 
> I hesitate to put it in kbuild.git... Any better place?
> 

I'll put it in tip:core/headers-fixes.

	-hpa

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH] Make exported headers use strict posix types
  2009-02-25 22:39                     ` David Woodhouse
@ 2009-02-25 23:58                       ` H. Peter Anvin
  0 siblings, 0 replies; 20+ messages in thread
From: H. Peter Anvin @ 2009-02-25 23:58 UTC (permalink / raw)
  To: David Woodhouse
  Cc: Arnd Bergmann, Sam Ravnborg, Kyle McMartin, Ingo Molnar,
	Jaswinder Singh Rajput, mingo, linux-kernel, linux-arch

David Woodhouse wrote:
>> Not legitimate in *exported* headers.
> 
> Not in the ones which might be included implicitly by glibc, perhaps --
> but other non-POSIX headers are perfectly entitled to require C standard
> types, surely?

It doesn't make any sense, though, when there is a straighforward way to 
deal without.

Now, for source code maintainability reasons I still believe this should 
be done mechanically instead of having to edit the source all over the 
place.

	-hpa


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH] Make exported headers use strict posix types
  2009-02-25 23:07                 ` H. Peter Anvin
@ 2009-02-26  0:01                   ` Arnd Bergmann
  2009-02-26  0:04                     ` H. Peter Anvin
  0 siblings, 1 reply; 20+ messages in thread
From: Arnd Bergmann @ 2009-02-26  0:01 UTC (permalink / raw)
  To: H. Peter Anvin
  Cc: Sam Ravnborg, Kyle McMartin, Ingo Molnar, Jaswinder Singh Rajput,
	mingo, dwmw2, linux-kernel, linux-arch

On Thursday 26 February 2009, H. Peter Anvin wrote:
> Sam Ravnborg wrote:
> >>
> >> This is my previous patch, ported to today's git. It's my last day
> >> before my vacation, so I can't do the usual testing etc. on it.
> >> Hopefully somebody else can take care of this.
> > 
> > I hesitate to put it in kbuild.git... Any better place?
> > 
> 
> I'll put it in tip:core/headers-fixes.

Just in the minute I notice a bug :(

Unfortunately, I mistakenly replaced uid_t with __kernel_uid_t when
it had to be __kernel_uid32_t. New series follows, including the
changes for all integer types.

	Arnd <><

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH] Make exported headers use strict posix types
  2009-02-26  0:01                   ` Arnd Bergmann
@ 2009-02-26  0:04                     ` H. Peter Anvin
  0 siblings, 0 replies; 20+ messages in thread
From: H. Peter Anvin @ 2009-02-26  0:04 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Sam Ravnborg, Kyle McMartin, Ingo Molnar, Jaswinder Singh Rajput,
	mingo, dwmw2, linux-kernel, linux-arch

Arnd Bergmann wrote:
> 
> Just in the minute I notice a bug :(
> 
> Unfortunately, I mistakenly replaced uid_t with __kernel_uid_t when
> it had to be __kernel_uid32_t. New series follows, including the
> changes for all integer types.
> 

S'okay... it's easy enough to back out at this time.

	-hpa


^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2009-02-26  0:07 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-02-25  3:25 [rfc] headers_check cleanups break the whole world Kyle McMartin
2009-02-25  6:24 ` H. Peter Anvin
2009-02-25  6:56 ` Ingo Molnar
2009-02-25  7:00   ` H. Peter Anvin
2009-02-25  7:05   ` Kyle McMartin
2009-02-25  7:08     ` H. Peter Anvin
2009-02-25  7:13       ` Kyle McMartin
2009-02-25  7:16         ` H. Peter Anvin
2009-02-25  7:22           ` Kyle McMartin
2009-02-25 18:17             ` [PATCH] Make exported headers use strict posix types Arnd Bergmann
2009-02-25 20:11               ` Sam Ravnborg
2009-02-25 21:42                 ` Arnd Bergmann
2009-02-25 21:58                 ` Arnd Bergmann
2009-02-25 22:07                   ` H. Peter Anvin
2009-02-25 22:39                     ` David Woodhouse
2009-02-25 23:58                       ` H. Peter Anvin
2009-02-25 23:07                 ` H. Peter Anvin
2009-02-26  0:01                   ` Arnd Bergmann
2009-02-26  0:04                     ` H. Peter Anvin
2009-02-25 11:34   ` [rfc] headers_check cleanups break the whole world Sam Ravnborg

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox