diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2009-01-14 08:14:00 -0500 |
---|---|---|
committer | Heiko Carstens <heiko.carstens@de.ibm.com> | 2009-01-14 08:15:17 -0500 |
commit | ee6a093222549ac0c72cfd296c69fa5e7d6daa34 (patch) | |
tree | 8f1788edc08009b80ee299b843cdc7bf3ac4bcdc | |
parent | 1a94bc34768e463a93cb3751819709ab0ea80a01 (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/Kconfig | 1 | ||||
-rw-r--r-- | include/linux/syscalls.h | 6 |
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 | ||
127 | config EARLY_PRINTK | 128 | config 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 | ||