mirror of
https://github.com/torvalds/linux.git
synced 2026-06-05 13:06:59 +02:00
Pull big execve/kernel_thread/fork unification series from Al Viro:
"All architectures are converted to new model. Quite a bit of that
stuff is actually shared with architecture trees; in such cases it's
literally shared branch pulled by both, not a cherry-pick.
A lot of ugliness and black magic is gone (-3KLoC total in this one):
- kernel_thread()/kernel_execve()/sys_execve() redesign.
We don't do syscalls from kernel anymore for either kernel_thread()
or kernel_execve():
kernel_thread() is essentially clone(2) with callback run before we
return to userland, the callbacks either never return or do
successful do_execve() before returning.
kernel_execve() is a wrapper for do_execve() - it doesn't need to
do transition to user mode anymore.
As a result kernel_thread() and kernel_execve() are
arch-independent now - they live in kernel/fork.c and fs/exec.c
resp. sys_execve() is also in fs/exec.c and it's completely
architecture-independent.
- daemonize() is gone, along with its parts in fs/*.c
- struct pt_regs * is no longer passed to do_fork/copy_process/
copy_thread/do_execve/search_binary_handler/->load_binary/do_coredump.
- sys_fork()/sys_vfork()/sys_clone() unified; some architectures
still need wrappers (ones with callee-saved registers not saved in
pt_regs on syscall entry), but the main part of those suckers is in
kernel/fork.c now."
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal: (113 commits)
do_coredump(): get rid of pt_regs argument
print_fatal_signal(): get rid of pt_regs argument
ptrace_signal(): get rid of unused arguments
get rid of ptrace_signal_deliver() arguments
new helper: signal_pt_regs()
unify default ptrace_signal_deliver
flagday: kill pt_regs argument of do_fork()
death to idle_regs()
don't pass regs to copy_process()
flagday: don't pass regs to copy_thread()
bfin: switch to generic vfork, get rid of pointless wrappers
xtensa: switch to generic clone()
openrisc: switch to use of generic fork and clone
unicore32: switch to generic clone(2)
score: switch to generic fork/vfork/clone
c6x: sanitize copy_thread(), get rid of clone(2) wrapper, switch to generic clone()
take sys_fork/sys_vfork/sys_clone prototypes to linux/syscalls.h
mn10300: switch to generic fork/vfork/clone
h8300: switch to generic fork/vfork/clone
tile: switch to generic clone()
...
Conflicts:
arch/microblaze/include/asm/Kbuild
|
||
|---|---|---|
| .. | ||
| cpufreq | ||
| .gitignore | ||
| acpi-ext.c | ||
| acpi.c | ||
| asm-offsets.c | ||
| audit.c | ||
| brl_emu.c | ||
| crash_dump.c | ||
| crash.c | ||
| cyclone.c | ||
| dma-mapping.c | ||
| efi_stub.S | ||
| efi.c | ||
| elfcore.c | ||
| entry.h | ||
| entry.S | ||
| err_inject.c | ||
| esi_stub.S | ||
| esi.c | ||
| fsys.S | ||
| fsyscall_gtod_data.h | ||
| ftrace.c | ||
| gate-data.S | ||
| gate.lds.S | ||
| gate.S | ||
| head.S | ||
| ia64_ksyms.c | ||
| init_task.c | ||
| iosapic.c | ||
| irq_ia64.c | ||
| irq_lsapic.c | ||
| irq.c | ||
| ivt.S | ||
| jprobes.S | ||
| kprobes.c | ||
| machine_kexec.c | ||
| machvec.c | ||
| Makefile | ||
| Makefile.gate | ||
| mca_asm.S | ||
| mca_drv_asm.S | ||
| mca_drv.c | ||
| mca_drv.h | ||
| mca.c | ||
| minstate.h | ||
| module.c | ||
| msi_ia64.c | ||
| nr-irqs.c | ||
| numa.c | ||
| pal.S | ||
| palinfo.c | ||
| paravirt_inst.h | ||
| paravirt_patch.c | ||
| paravirt_patchlist.c | ||
| paravirt_patchlist.h | ||
| paravirt.c | ||
| paravirtentry.S | ||
| patch.c | ||
| pci-dma.c | ||
| pci-swiotlb.c | ||
| perfmon_default_smpl.c | ||
| perfmon_generic.h | ||
| perfmon_itanium.h | ||
| perfmon_mckinley.h | ||
| perfmon_montecito.h | ||
| perfmon.c | ||
| process.c | ||
| ptrace.c | ||
| relocate_kernel.S | ||
| sal.c | ||
| salinfo.c | ||
| setup.c | ||
| sigframe.h | ||
| signal.c | ||
| smp.c | ||
| smpboot.c | ||
| stacktrace.c | ||
| sys_ia64.c | ||
| time.c | ||
| topology.c | ||
| traps.c | ||
| unaligned.c | ||
| uncached.c | ||
| unwind_decoder.c | ||
| unwind_i.h | ||
| unwind.c | ||
| vmlinux.lds.S | ||