Al Viro
6bf9adfc90
introduce generic sys_sigaltstack(), switch x86 and um to it
...
Conditional on CONFIG_GENERIC_SIGALTSTACK; architectures that do not
select it are completely unaffected
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-12-19 18:07:40 -05:00
Al Viro
9b064fc3f9
new helper: compat_user_stack_pointer()
...
Compat counterpart of current_user_stack_pointer(); for most of the biarch
architectures those two are identical, but e.g. arm64 and arm use different
registers for stack pointer...
Note that amd64 variants of current_user_stack_pointer/compat_user_stack_pointer
do *not* rely on pt_regs having been through FIXUP_TOP_OF_STACK.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-12-19 18:07:40 -05:00
Al Viro
5c49574ffd
new helper: restore_altstack()
...
to be used by rt_sigreturn instances
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-12-19 18:07:40 -05:00
Al Viro
031b656698
unify SS_ONSTACK/SS_DISABLE definitions
...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-12-19 18:07:39 -05:00
Al Viro
1ca97bb541
new helper: current_user_stack_pointer()
...
Cross-architecture equivalent of rdusp(); default is
user_stack_pointer(current_pt_regs()) - that works for almost all
platforms that have usp saved in pt_regs. The only exception from
that is ia64 - we want memory stack, not the backing store for
register one.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-12-19 18:07:39 -05:00
Al Viro
5208ba24e7
missing user_stack_pointer() instances
...
for the architectures that have usp in pt_regs and do not have
user_stack_pointer() already defined.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-12-19 18:07:39 -05:00
Al Viro
ae903caae2
Bury the conditionals from kernel_thread/kernel_execve series
...
All architectures have
CONFIG_GENERIC_KERNEL_THREAD
CONFIG_GENERIC_KERNEL_EXECVE
__ARCH_WANT_SYS_EXECVE
None of them have __ARCH_WANT_KERNEL_EXECVE and there are only two callers
of kernel_execve() (which is a trivial wrapper for do_execve() now) left.
Kill the conditionals and make both callers use do_execve().
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-12-19 18:07:38 -05:00
Al Viro
4683661388
COMPAT_SYSCALL_DEFINE: infrastructure
...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-12-19 18:06:58 -05:00
Al Viro
541880d9a2
do_coredump(): get rid of pt_regs argument
...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-11-29 00:01:25 -05:00
Al Viro
4aaefee589
print_fatal_signal(): get rid of pt_regs argument
...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-11-29 00:01:25 -05:00
Al Viro
94eb22d505
ptrace_signal(): get rid of unused arguments
...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-11-29 00:01:24 -05:00
Al Viro
b7f9591c44
get rid of ptrace_signal_deliver() arguments
...
the first one is equal to signal_pt_regs(), the second is never used
(and always NULL, while we are at it).
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-11-29 00:01:24 -05:00
Al Viro
22062a9630
new helper: signal_pt_regs()
...
Always equal to task_pt_regs(current); defined only when we are in
signal delivery. It may be different from current_pt_regs() - e.g.
architectures like m68k may have pt_regs location on exception
different from that on a syscall and signals (just as ptrace handling)
may happen on exceptions as well as on syscalls.
When they are equal, it's often better to have signal_pt_regs
defined (in asm/ptrace.h) as current_pt_regs - that tends to be
optimized better than default would be. However, optimisation is
the only reason why we might want an arch-specific definition;
if current_pt_regs() and task_pt_regs(current) have different
values, the latter one is right.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-11-29 00:01:23 -05:00
Al Viro
4f4202fe5a
unify default ptrace_signal_deliver
...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-11-29 00:01:23 -05:00
Al Viro
e80d6661c3
flagday: kill pt_regs argument of do_fork()
...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-11-29 00:01:08 -05:00
Al Viro
18c26c27ae
death to idle_regs()
...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-11-28 23:43:42 -05:00
Al Viro
62e791c1b8
don't pass regs to copy_process()
...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-11-28 23:43:42 -05:00
Al Viro
afa86fc426
flagday: don't pass regs to copy_thread()
...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-11-28 23:43:42 -05:00
Al Viro
135c37b83c
bfin: switch to generic vfork, get rid of pointless wrappers
...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-11-28 23:43:41 -05:00
Al Viro
3e41f9ba61
xtensa: switch to generic clone()
...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-11-28 23:43:41 -05:00
Al Viro
39d91a9eaf
openrisc: switch to use of generic fork and clone
...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-11-28 23:43:40 -05:00
Al Viro
cb56217362
unicore32: switch to generic clone(2)
...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-11-28 23:43:40 -05:00
Al Viro
eda9697702
score: switch to generic fork/vfork/clone
...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-11-28 23:43:40 -05:00
Al Viro
951b39619a
c6x: sanitize copy_thread(), get rid of clone(2) wrapper, switch to generic clone()
...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-11-28 23:43:39 -05:00
Al Viro
24465a40ba
take sys_fork/sys_vfork/sys_clone prototypes to linux/syscalls.h
...
now it can be done...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-11-28 23:43:27 -05:00
Al Viro
1ea2a01605
mn10300: switch to generic fork/vfork/clone
...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-11-28 22:47:24 -05:00
Al Viro
3416e8098a
h8300: switch to generic fork/vfork/clone
...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-11-28 22:46:54 -05:00
Al Viro
e9eac30418
tile: switch to generic clone()
...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-11-28 22:46:37 -05:00
Al Viro
20ecc91c32
m68k: sanitize copy_thread(), fork/vfork/clone wrappers, switch to generic fork/vfork
...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-11-28 22:44:46 -05:00
Al Viro
dfe09ae0e5
alpha: switch to generic fork/vfork/clone
...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-11-28 22:44:45 -05:00
Al Viro
87f1ca8fd9
s390: switch to generic fork/vfork/clone
...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-11-28 22:44:37 -05:00
Al Viro
f3268edbe6
microblaze: switch to generic fork/vfork/clone
...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
2012-11-28 22:43:40 -05:00
Al Viro
f01aceac61
hexagon: switch to generic clone()
...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-11-28 22:42:44 -05:00
Al Viro
0ad9513d0f
sh: switch to generic fork/vfork/clone
...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-11-28 22:36:47 -05:00
Al Viro
415bfae9e9
parisc: switch to generic fork/vfork/clone
...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-11-28 22:36:46 -05:00
Al Viro
92bbe6cdfd
m32r: switch to generic fork/vfork/clone
...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-11-28 22:36:46 -05:00
Al Viro
27d892fb27
cris: switch to generic fork/vfork/clone
...
same braindamage as on s390 - the first two arguments of clone(2) in the
wrong order.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-11-28 22:36:46 -05:00
Al Viro
584271bcb4
avr32: sanitize copy_thread(), switch to generic fork/vfork/clone, kill wrappers
...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-11-28 22:36:45 -05:00
Al Viro
9ac0800213
arm64: sanitize copy_thread(), switch to generic fork/vfork/clone
...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-11-28 22:36:33 -05:00
Al Viro
b9763ce33f
frv: switch to generic fork/vfork/clone
...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-11-28 22:16:06 -05:00
Al Viro
0bcfe54049
powerpc: switch to generic fork/clone/vfork
...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-11-28 22:14:55 -05:00
Al Viro
38a61b6b4a
arm: switch to generic fork/vfork/clone
...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-11-28 22:13:54 -05:00
Al Viro
1d4b4b2994
x86, um: switch to generic fork/vfork/clone
...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-11-28 22:13:44 -05:00
Al Viro
71613c3b87
get rid of pt_regs argument of ->load_binary()
...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-11-28 21:53:38 -05:00
Al Viro
3c456bfc4b
get rid of pt_regs argument of search_binary_handler()
...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-11-28 21:53:38 -05:00
Al Viro
835ab32dff
get rid of pt_regs argument of do_execve_common()
...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-11-28 21:53:37 -05:00
Al Viro
da3d4c5fa5
get rid of pt_regs argument of do_execve()
...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-11-28 21:53:37 -05:00
Al Viro
d03d26e58f
make compat_do_execve() static, lose pt_regs argument
...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-11-28 21:53:37 -05:00
Al Viro
910cdc553a
kill stray kernel_thread() garbage
...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-11-28 21:53:36 -05:00
Al Viro
c62d773a37
audit: no nested contexts anymore...
...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-11-28 21:53:36 -05:00