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 /fs | |
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 'fs')
-rw-r--r-- | fs/exec.c | 21 |
1 files changed, 0 insertions, 21 deletions
@@ -1654,7 +1654,6 @@ int get_dumpable(struct mm_struct *mm) | |||
1654 | return __get_dumpable(mm->flags); | 1654 | return __get_dumpable(mm->flags); |
1655 | } | 1655 | } |
1656 | 1656 | ||
1657 | #ifdef __ARCH_WANT_SYS_EXECVE | ||
1658 | SYSCALL_DEFINE3(execve, | 1657 | SYSCALL_DEFINE3(execve, |
1659 | const char __user *, filename, | 1658 | const char __user *, filename, |
1660 | const char __user *const __user *, argv, | 1659 | const char __user *const __user *, argv, |
@@ -1682,23 +1681,3 @@ asmlinkage long compat_sys_execve(const char __user * filename, | |||
1682 | return error; | 1681 | return error; |
1683 | } | 1682 | } |
1684 | #endif | 1683 | #endif |
1685 | #endif | ||
1686 | |||
1687 | #ifdef __ARCH_WANT_KERNEL_EXECVE | ||
1688 | int kernel_execve(const char *filename, | ||
1689 | const char *const argv[], | ||
1690 | const char *const envp[]) | ||
1691 | { | ||
1692 | int ret = do_execve(filename, | ||
1693 | (const char __user *const __user *)argv, | ||
1694 | (const char __user *const __user *)envp); | ||
1695 | if (ret < 0) | ||
1696 | return ret; | ||
1697 | |||
1698 | /* | ||
1699 | * We were successful. We won't be returning to our caller, but | ||
1700 | * instead to user space by manipulating the kernel stack. | ||
1701 | */ | ||
1702 | ret_from_kernel_execve(current_pt_regs()); | ||
1703 | } | ||
1704 | #endif | ||