lkml.org 
[lkml]   [2008]   [Apr]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
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"


\
 
 \ /
  Last update: 2008-04-20 21:05    [W:0.037 / U:0.088 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site