Messages in this thread Patch in this message | | | Date | Sun, 20 Apr 2008 22:02:17 +0300 | From | Adrian Bunk <> | Subject | [2.6 patch] fix asm-x86/{posix_types,unistd}.h |
| |
On Sun, Apr 20, 2008 at 12:04:53AM +0800, Jeff Chua wrote: > > Linus, > > The latest git download changes the behavior of posix_types.h such that > non-kernel programs are no longer able to include posix types (e.g. > xserver can no longer be compiled). > > I don't know whether this is intended or a bug.
Thanks for reporting this bug.
Commit e40c0fe6b0b5dd16aec3c0dad311d36b19d78fd9 (x86: cleanup duplicate includes) contains no indication this was intentional.
@Joe: Please be more careful in the future.
@Ingo: A proper review of the patch could have caught this bug that now made it into a stable kernel.
> Attached is a patch to allow __i386__ as was done in the past. > > Thanks, > Jeff. > > > --- linux-2.6/include/asm-x86/posix_types.h.org 2008-04-19 16:53:03 +0800 > +++ linux-2.6/include/asm-x86/posix_types.h 2008-04-19 16:51:48 +0800 > @@ -1,5 +1,5 @@ > -#ifdef __KERNEL__ > -# if defined(CONFIG_X86_32) || defined(__i386__) > +#if defined(__KERNEL__) || defined(__i386__) > +# if defined(CONFIG_X86_32) > # include "posix_types_32.h" > # else > # include "posix_types_64.h"
This doesn't look as if it will work with 64bit userspace.
A patch that reverts the bogus changes to asm-x86/posix_types.h and asm-x86/unistd.h (which suffers from the same breakage) is below.
cu Adrian
<-- snip -->
Commit e40c0fe6b0b5dd16aec3c0dad311d36b19d78fd9 (x86: cleanup duplicate includes) turned the userspace asm-x86/posix_types.h and asm-x86/unistd.h headers into empty files.
This patch reverts these bogus changes.
Reported-by: Jeff Chua <jeff.chua.linux@gmail.com> Signed-off-by: Adrian Bunk <bunk@kernel.org>
---
include/asm-x86/posix_types.h | 8 +++++++- include/asm-x86/unistd.h | 8 +++++++- 2 files changed, 14 insertions(+), 2 deletions(-)
ab170018723af65f4020db74757e4949d110963a diff --git a/include/asm-x86/posix_types.h b/include/asm-x86/posix_types.h index fe312a5..bb7133d 100644 --- a/include/asm-x86/posix_types.h +++ b/include/asm-x86/posix_types.h @@ -1,5 +1,11 @@ #ifdef __KERNEL__ -# if defined(CONFIG_X86_32) || defined(__i386__) +# ifdef CONFIG_X86_32 +# include "posix_types_32.h" +# else +# include "posix_types_64.h" +# endif +#else +# ifdef __i386__ # include "posix_types_32.h" # else # include "posix_types_64.h" diff --git a/include/asm-x86/unistd.h b/include/asm-x86/unistd.h index effc7ad..2a58ed3 100644 --- a/include/asm-x86/unistd.h +++ b/include/asm-x86/unistd.h @@ -1,5 +1,11 @@ #ifdef __KERNEL__ -# if defined(CONFIG_X86_32) || defined(__i386__) +# ifdef CONFIG_X86_32 +# include "unistd_32.h" +# else +# include "unistd_64.h" +# endif +#else +# ifdef __i386__ # include "unistd_32.h" # else # include "unistd_64.h"
| |