aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm64
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-12-20 21:05:28 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2012-12-20 21:05:28 -0500
commit54d46ea993744c5408e39ce0cb4851e13cbea716 (patch)
tree8e38fa92cc2ae72e0353c44e1e68be9bf5a7a058 /arch/arm64
parentf59dc2bb5a50b26ea751f9eac1c81e4cc7de5257 (diff)
parent50ececcfa7d1acee085b2c518cad495062db6379 (diff)
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal
Pull signal handling cleanups from Al Viro: "sigaltstack infrastructure + conversion for x86, alpha and um, COMPAT_SYSCALL_DEFINE infrastructure. Note that there are several conflicts between "unify SS_ONSTACK/SS_DISABLE definitions" and UAPI patches in mainline; resolution is trivial - just remove definitions of SS_ONSTACK and SS_DISABLED from arch/*/uapi/asm/signal.h; they are all identical and include/uapi/linux/signal.h contains the unified variant." Fixed up conflicts as per Al. * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal: alpha: switch to generic sigaltstack new helpers: __save_altstack/__compat_save_altstack, switch x86 and um to those generic compat_sys_sigaltstack() introduce generic sys_sigaltstack(), switch x86 and um to it new helper: compat_user_stack_pointer() new helper: restore_altstack() unify SS_ONSTACK/SS_DISABLE definitions new helper: current_user_stack_pointer() missing user_stack_pointer() instances Bury the conditionals from kernel_thread/kernel_execve series COMPAT_SYSCALL_DEFINE: infrastructure
Diffstat (limited to 'arch/arm64')
-rw-r--r--arch/arm64/Kconfig2
-rw-r--r--arch/arm64/include/asm/compat.h5
-rw-r--r--arch/arm64/include/asm/unistd.h1
3 files changed, 3 insertions, 5 deletions
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index f9ccff915918..9c829b008261 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -8,8 +8,6 @@ config ARM64
8 select GENERIC_IOMAP 8 select GENERIC_IOMAP
9 select GENERIC_IRQ_PROBE 9 select GENERIC_IRQ_PROBE
10 select GENERIC_IRQ_SHOW 10 select GENERIC_IRQ_SHOW
11 select GENERIC_KERNEL_EXECVE
12 select GENERIC_KERNEL_THREAD
13 select GENERIC_SMP_IDLE_THREAD 11 select GENERIC_SMP_IDLE_THREAD
14 select GENERIC_TIME_VSYSCALL 12 select GENERIC_TIME_VSYSCALL
15 select HARDIRQS_SW_RESEND 13 select HARDIRQS_SW_RESEND
diff --git a/arch/arm64/include/asm/compat.h b/arch/arm64/include/asm/compat.h
index 37e610dc084e..d9ec40217a27 100644
--- a/arch/arm64/include/asm/compat.h
+++ b/arch/arm64/include/asm/compat.h
@@ -209,10 +209,11 @@ static inline compat_uptr_t ptr_to_compat(void __user *uptr)
209 return (u32)(unsigned long)uptr; 209 return (u32)(unsigned long)uptr;
210} 210}
211 211
212#define compat_user_stack_pointer() (current_pt_regs()->compat_sp)
213
212static inline void __user *arch_compat_alloc_user_space(long len) 214static inline void __user *arch_compat_alloc_user_space(long len)
213{ 215{
214 struct pt_regs *regs = task_pt_regs(current); 216 return (void __user *)compat_user_stack_pointer() - len;
215 return (void __user *)regs->compat_sp - len;
216} 217}
217 218
218struct compat_ipc64_perm { 219struct compat_ipc64_perm {
diff --git a/arch/arm64/include/asm/unistd.h b/arch/arm64/include/asm/unistd.h
index 76fb7dd3350a..744087fb521c 100644
--- a/arch/arm64/include/asm/unistd.h
+++ b/arch/arm64/include/asm/unistd.h
@@ -28,6 +28,5 @@
28#define __ARCH_WANT_SYS_FORK 28#define __ARCH_WANT_SYS_FORK
29#define __ARCH_WANT_SYS_VFORK 29#define __ARCH_WANT_SYS_VFORK
30#endif 30#endif
31#define __ARCH_WANT_SYS_EXECVE
32#define __ARCH_WANT_SYS_CLONE 31#define __ARCH_WANT_SYS_CLONE
33#include <uapi/asm/unistd.h> 32#include <uapi/asm/unistd.h>