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
Al Viro
6b94631f9e
consolidate sys_execve() prototype
...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-11-28 21:53:35 -05:00
Al Viro
f4091322d7
Merge branches 'no-rebases', 'arch-avr32', 'arch-blackfin', 'arch-cris', 'arch-h8300', 'arch-m32r', 'arch-mn10300', 'arch-score', 'arch-sh' and 'arch-powerpc' into for-next
2012-11-28 21:52:07 -05:00
Al Viro
d2125043ae
generic sys_fork / sys_vfork / sys_clone
...
... and get rid of idiotic struct pt_regs * in asm-generic/syscalls.h
prototypes of the same, while we are at it. Eventually we want those
in linux/syscalls.h, of course, but that'll have to wait a bit.
Note that there are *three* variants of sys_clone() order of arguments.
Braindamage galore...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-11-28 21:49:04 -05:00
Al Viro
25906730ec
alpha: reorganize copy_process(), prepare to saner fork_idle()
...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-11-28 21:49:04 -05:00
Al Viro
b960f30344
alpha: don't pass useless arguments to do_{,rt_},sigreturn()
...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-11-28 21:49:04 -05:00
Al Viro
e0e431aa45
alpha: simplify fork and friends
...
* no need to restore everything from switch_stack when we only need $26
* no need to pass current_pt_regs() manually, we can just as easily
calculate it in alpha_clone/alpha_vfork ($8 + constant)
* interpretation of zero usp as "use the parent's" is simpler in copy_thread();
let fork and vfork just pass 0.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-11-28 21:49:03 -05:00