aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2009-01-14 08:14:00 -0500
committerHeiko Carstens <heiko.carstens@de.ibm.com>2009-01-14 08:15:17 -0500
commitee6a093222549ac0c72cfd296c69fa5e7d6daa34 (patch)
tree8f1788edc08009b80ee299b843cdc7bf3ac4bcdc
parent1a94bc34768e463a93cb3751819709ab0ea80a01 (diff)
[CVE-2009-0029] powerpc: Enable syscall wrappers for 64-bit
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>
-rw-r--r--arch/powerpc/Kconfig1
-rw-r--r--include/linux/syscalls.h6
2 files changed, 7 insertions, 0 deletions
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 84b861316ce7..e39b73bc0ff8 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -123,6 +123,7 @@ config PPC
123 select HAVE_DMA_ATTRS if PPC64 123 select HAVE_DMA_ATTRS if PPC64
124 select USE_GENERIC_SMP_HELPERS if SMP 124 select USE_GENERIC_SMP_HELPERS if SMP
125 select HAVE_OPROFILE 125 select HAVE_OPROFILE
126 select HAVE_SYSCALL_WRAPPERS if PPC64
126 127
127config EARLY_PRINTK 128config EARLY_PRINTK
128 bool 129 bool
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h
index 0bb537d7ba2e..90aa5eba87a2 100644
--- a/include/linux/syscalls.h
+++ b/include/linux/syscalls.h
@@ -103,8 +103,14 @@ struct old_linux_dirent;
103#define SYSCALL_DEFINE5(...) SYSCALL_DEFINEx(5, __VA_ARGS__) 103#define SYSCALL_DEFINE5(...) SYSCALL_DEFINEx(5, __VA_ARGS__)
104#define SYSCALL_DEFINE6(...) SYSCALL_DEFINEx(6, __VA_ARGS__) 104#define SYSCALL_DEFINE6(...) SYSCALL_DEFINEx(6, __VA_ARGS__)
105 105
106#ifdef CONFIG_PPC64
107#define SYSCALL_ALIAS(alias, name) \
108 asm ("\t.globl " #alias "\n\t.set " #alias ", " #name "\n" \
109 "\t.globl ." #alias "\n\t.set ." #alias ", ." #name)
110#else
106#define SYSCALL_ALIAS(alias, name) \ 111#define SYSCALL_ALIAS(alias, name) \
107 asm ("\t.globl " #alias "\n\t.set " #alias ", " #name) 112 asm ("\t.globl " #alias "\n\t.set " #alias ", " #name)
113#endif
108 114
109#ifdef CONFIG_HAVE_SYSCALL_WRAPPERS 115#ifdef CONFIG_HAVE_SYSCALL_WRAPPERS
110 116