diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-12-20 21:05:28 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-12-20 21:05:28 -0500 |
commit | 54d46ea993744c5408e39ce0cb4851e13cbea716 (patch) | |
tree | 8e38fa92cc2ae72e0353c44e1e68be9bf5a7a058 /arch/arm64 | |
parent | f59dc2bb5a50b26ea751f9eac1c81e4cc7de5257 (diff) | |
parent | 50ececcfa7d1acee085b2c518cad495062db6379 (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/Kconfig | 2 | ||||
-rw-r--r-- | arch/arm64/include/asm/compat.h | 5 | ||||
-rw-r--r-- | arch/arm64/include/asm/unistd.h | 1 |
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 | |||
212 | static inline void __user *arch_compat_alloc_user_space(long len) | 214 | static 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 | ||
218 | struct compat_ipc64_perm { | 219 | struct 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> |