]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
powerpc: Enable syscall wrappers for 64-bit
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Wed, 14 Jan 2009 13:14:00 +0000 (14:14 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Sun, 18 Jan 2009 18:43:52 +0000 (10:43 -0800)
commit ee6a093222549ac0c72cfd296c69fa5e7d6daa34 upstream.

This enables the use of syscall wrappers to do proper sign extension
for 64-bit programs.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
arch/powerpc/Kconfig
include/linux/syscalls.h

index 525c13a4de93ede9cd9451569d41cd20760b3636..de93c07c15b46409466f20e30ca2ab7feaf14f18 100644 (file)
@@ -121,6 +121,7 @@ config PPC
        select HAVE_DMA_ATTRS if PPC64
        select USE_GENERIC_SMP_HELPERS if SMP
        select HAVE_OPROFILE
+       select HAVE_SYSCALL_WRAPPERS if PPC64
 
 config EARLY_PRINTK
        bool
index 0bb537d7ba2e3db514efeae1745e98e3aad50eb1..90aa5eba87a2d45b865df08c84567ee9a0bd80e1 100644 (file)
@@ -103,8 +103,14 @@ struct old_linux_dirent;
 #define SYSCALL_DEFINE5(...)    SYSCALL_DEFINEx(5, __VA_ARGS__)
 #define SYSCALL_DEFINE6(...)    SYSCALL_DEFINEx(6, __VA_ARGS__)
 
+#ifdef CONFIG_PPC64
+#define SYSCALL_ALIAS(alias, name)                                     \
+       asm ("\t.globl " #alias "\n\t.set " #alias ", " #name "\n"      \
+            "\t.globl ." #alias "\n\t.set ." #alias ", ." #name)
+#else
 #define SYSCALL_ALIAS(alias, name)                                     \
        asm ("\t.globl " #alias "\n\t.set " #alias ", " #name)
+#endif
 
 #ifdef CONFIG_HAVE_SYSCALL_WRAPPERS