Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[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>

authored by

Benjamin Herrenschmidt and committed by
Heiko Carstens
ee6a0932 1a94bc34

+7
+1
arch/powerpc/Kconfig
··· 123 123 select HAVE_DMA_ATTRS if PPC64 124 124 select USE_GENERIC_SMP_HELPERS if SMP 125 125 select HAVE_OPROFILE 126 + select HAVE_SYSCALL_WRAPPERS if PPC64 126 127 127 128 config EARLY_PRINTK 128 129 bool
+6
include/linux/syscalls.h
··· 103 103 #define SYSCALL_DEFINE5(...) SYSCALL_DEFINEx(5, __VA_ARGS__) 104 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 111 #define SYSCALL_ALIAS(alias, name) \ 107 112 asm ("\t.globl " #alias "\n\t.set " #alias ", " #name) 113 + #endif 108 114 109 115 #ifdef CONFIG_HAVE_SYSCALL_WRAPPERS 110 116