Patchwork PPC: Add __SANE_USERSPACE_TYPES__ to asm/types.h for LL64

login
register
mail settings
Submitter Matt Evans
Date Dec. 8, 2011, 6:57 a.m.
Message ID <4EE05FC5.9000701@ozlabs.org>
Download mbox | patch
Permalink /patch/130103/
State Accepted
Commit 2c9c6ce0199a4d252e20c531cfdc9d24e39235c0
Headers show

Comments

Matt Evans - Dec. 8, 2011, 6:57 a.m.
PPC64 uses long long for u64 in the kernel, but powerpc's asm/types.h
prevents 64-bit userland from seeing this definition, instead defaulting
to u64 == long in userspace.  Some user programs (e.g. kvmtool) may actually
want LL64, so this patch adds a check for __SANE_USERSPACE_TYPES__ so that,
if defined, int-ll64.h is included instead.

Signed-off-by: Matt Evans <matt@ozlabs.org>
---
 arch/powerpc/include/asm/types.h |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)
Ingo Molnar - Dec. 8, 2011, 8:16 a.m.
* Matt Evans <matt@ozlabs.org> wrote:

> PPC64 uses long long for u64 in the kernel, but powerpc's asm/types.h
> prevents 64-bit userland from seeing this definition, instead defaulting
> to u64 == long in userspace.  Some user programs (e.g. kvmtool) may actually
> want LL64, so this patch adds a check for __SANE_USERSPACE_TYPES__ so that,
> if defined, int-ll64.h is included instead.
> 
> Signed-off-by: Matt Evans <matt@ozlabs.org>
> ---
>  arch/powerpc/include/asm/types.h |    5 ++++-
>  1 files changed, 4 insertions(+), 1 deletions(-)
> 
> diff --git a/arch/powerpc/include/asm/types.h b/arch/powerpc/include/asm/types.h
> index 8947b98..d82e94e 100644
> --- a/arch/powerpc/include/asm/types.h
> +++ b/arch/powerpc/include/asm/types.h
> @@ -5,8 +5,11 @@
>   * This is here because we used to use l64 for 64bit powerpc
>   * and we don't want to impact user mode with our change to ll64
>   * in the kernel.
> + *
> + * However, some user programs are fine with this.  They can
> + * flag __SANE_USERSPACE_TYPES__ to get int-ll64.h here.
>   */
> -#if defined(__powerpc64__) && !defined(__KERNEL__)
> +#if !defined(__SANE_USERSPACE_TYPES__) && defined(__powerpc64__) && !defined(__KERNEL__)

Acked-by: Ingo Molnar <mingo@elte.hu>

Any other name would work too i guess.

Thanks,

	Ingo

Patch

diff --git a/arch/powerpc/include/asm/types.h b/arch/powerpc/include/asm/types.h
index 8947b98..d82e94e 100644
--- a/arch/powerpc/include/asm/types.h
+++ b/arch/powerpc/include/asm/types.h
@@ -5,8 +5,11 @@ 
  * This is here because we used to use l64 for 64bit powerpc
  * and we don't want to impact user mode with our change to ll64
  * in the kernel.
+ *
+ * However, some user programs are fine with this.  They can
+ * flag __SANE_USERSPACE_TYPES__ to get int-ll64.h here.
  */
-#if defined(__powerpc64__) && !defined(__KERNEL__)
+#if !defined(__SANE_USERSPACE_TYPES__) && defined(__powerpc64__) && !defined(__KERNEL__)
 # include <asm-generic/int-l64.h>
 #else
 # include <asm-generic/int-ll64.h>