[git pull] signal.git, pile 2 (was Re: [RFC][CFT][CFReview] execve and kernel_thread unification work)
From: Al Viro <viro@ZenIV.linux.org.uk>
Date: 2012-10-12 01:10:07
Also in:
lkml
On Fri, Oct 12, 2012 at 11:16:33AM +1100, Paul Mackerras wrote:
On Thu, Oct 11, 2012 at 01:53:06PM +0100, Al Viro wrote:quoted
Umm... Maybe, but let's do that as subsequent cleanup. Again, we almost certainly don't need to mess with TOC at all - the callbacks are in the main kernel, there are very few of them and they really are low-level details of exported mechanisms (i.e. kthread_create/run/etc. in kthread.h and call_usermode... in kmod.h). Again, we are talking about out-of-tree modules, they had better mechanism for at least 6 years and conversion to it is bloody trivial. Hell, it was even in late unlamented feature-removal-schedule.txt - since 2006. If that's not enough to retire an export, what is?OK... yes we can fix things up in a subsequent cleanup. We will need to fix the TOC handling when we go to using multiple TOCs in the main kernel, with the linker managing the transitions between TOCs. Our toolchain guys have been pushing us to do that for years, because it should make things run faster, but first we'll have to stop using ld -r to combine objects in subdirectories.
How granular are you planning to make that? I mean, we are talking about
3 objects here - init/main.o, kernel/kthread.o and kernel/kmod.o. Do they
get TOC separate from that of arch/powerpc/kernel/entry_64.o?
Anyway, if ppc folks can live with that stuff in its current form for now,
here's the second signal.git pull request. Stuff in there: kernel_thread/
kernel_execve/sys_execve conversions for several more architectures plus
assorted signal fixes and cleanups. There'll be more (in particular, real
fixes for alpha do_notify_resume() irq mess)... Linus, could you pull that
queue? It's in the usual place -
git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal for-linus
Shortlog:
Al Viro (38):
powerpc: split ret_from_fork
powerpc: switch to generic sys_execve()/kernel_execve()
m68k: split ret_from_fork(), simplify kernel_thread()
m68k: switch to generic sys_execve()/kernel_execve()
frv: split ret_from_fork, simplify kernel_thread() a lot
frv: switch to generic sys_execve()
frv: switch to generic kernel_execve
frv: switch to generic kernel_thread()
mn10300: split ret_from_fork, simplify kernel_thread()
mn10300: switch to generic sys_execve()
mn10300: switch to generic kernel_execve()
mn10300: convert to generic kernel_thread()
c6x: switch to generic kernel_thread()
xtensa: can't get to do_notify_resume() when user_mode(regs) is not true
mn10300: get rid of calling do_notify_resume() when returning to kernel mode
score: fix bogus restarts on sigreturn()
ia64: can't reach do_signal() when returning to kernel mode
mips: prevent hitting do_notify_resume() with !user_mode(regs)
mips: unobfuscate _TIF..._MASK
mips: merge the identical "return from syscall" per-ABI code
mips: NOTIFY_RESUME is not needed in TIF masks
unicore32: unobfuscate _TIF_WORK_MASK
bury _TIF_RESTORE_SIGMASK
sanitize tsk_is_polling()
bury the rest of TIF_IRET
parisc: fix double restarts
parisc: don't bother looping in do_signal()
parisc: decide whether to go to slow path (tracesys) based on thread flags
h8300: trim _TIF_WORK_MASK
unicore32: remove pointless test
x86: get rid of duplicate code in case of CONFIG_VM86
frv: no need to raise SIGTRAP in setup_frame()
mn10300: don't bother with SIGTRAP in setup_frame()
microblaze: don't bother with SIGTRAP in setup_rt_frame()
tile: don't bother with SIGTRAP in setup_frame
avr32: trim masks
m32r: trim masks
alpha: don't open-code trace_report_syscall_{enter,exit}
Greg Ungerer (1):
m68k: always set stack frame format for ColdFire on thread start
Mark Salter (3):
c6x: add ret_from_kernel_thread(), simplify kernel_thread()
c6x: switch to generic kernel_execve
c6x: switch to generic sys_execve
Richard Weinberger (1):
Uninclude linux/freezer.h
Diffstat:
arch/alpha/include/asm/thread_info.h | 3 +-
arch/alpha/kernel/entry.S | 13 ++--
arch/alpha/kernel/ptrace.c | 32 ++++-----
arch/arm/include/asm/thread_info.h | 2 -
arch/arm/kernel/signal.c | 1 -
arch/avr32/include/asm/thread_info.h | 18 ++---
arch/avr32/kernel/signal.c | 1 -
arch/blackfin/include/asm/thread_info.h | 4 -
arch/blackfin/kernel/signal.c | 1 -
arch/c6x/Kconfig | 1 +
arch/c6x/include/asm/processor.h | 2 -
arch/c6x/include/asm/syscalls.h | 5 --
arch/c6x/include/asm/thread_info.h | 1 -
arch/c6x/include/asm/unistd.h | 3 +
arch/c6x/kernel/asm-offsets.c | 1 -
arch/c6x/kernel/entry.S | 56 +++++++--------
arch/c6x/kernel/process.c | 72 +++-----------------
arch/cris/include/asm/thread_info.h | 3 -
arch/frv/Kconfig | 1 +
arch/frv/include/asm/processor.h | 9 +--
arch/frv/include/asm/ptrace.h | 1 +
arch/frv/include/asm/thread_info.h | 3 -
arch/frv/include/asm/unistd.h | 2 +
arch/frv/kernel/Makefile | 4 +-
arch/frv/kernel/entry.S | 13 ++++
arch/frv/kernel/frv_ksyms.c | 1 -
arch/frv/kernel/kernel_execve.S | 33 ---------
arch/frv/kernel/kernel_thread.S | 77 ---------------------
arch/frv/kernel/process.c | 66 ++++++------------
arch/frv/kernel/signal.c | 9 ---
arch/h8300/include/asm/thread_info.h | 7 +--
arch/h8300/kernel/signal.c | 1 -
arch/hexagon/include/asm/thread_info.h | 5 --
arch/hexagon/kernel/signal.c | 1 -
arch/ia64/include/asm/thread_info.h | 2 -
arch/ia64/kernel/signal.c | 8 --
arch/m32r/include/asm/thread_info.h | 9 +--
arch/m32r/kernel/signal.c | 3 -
arch/m68k/Kconfig | 1 +
arch/m68k/include/asm/processor.h | 25 +++----
arch/m68k/include/asm/ptrace.h | 2 +
arch/m68k/include/asm/unistd.h | 2 +
arch/m68k/kernel/entry.S | 16 +++++
arch/m68k/kernel/process.c | 104 +++++++----------------------
arch/m68k/kernel/sys_m68k.c | 17 -----
arch/microblaze/include/asm/thread_info.h | 3 +-
arch/microblaze/kernel/signal.c | 7 +--
arch/mips/include/asm/thread_info.h | 9 +--
arch/mips/kernel/entry.S | 15 +++-
arch/mips/kernel/scall32-o32.S | 13 +---
arch/mips/kernel/scall64-64.S | 13 +---
arch/mips/kernel/scall64-n32.S | 13 +---
arch/mips/kernel/scall64-o32.S | 13 +---
arch/mips/kernel/signal.c | 8 --
arch/mn10300/Kconfig | 1 +
arch/mn10300/include/asm/frame.inc | 2 +-
arch/mn10300/include/asm/processor.h | 18 +----
arch/mn10300/include/asm/ptrace.h | 1 +
arch/mn10300/include/asm/thread_info.h | 3 +-
arch/mn10300/include/asm/unistd.h | 2 +
arch/mn10300/kernel/Makefile | 4 +-
arch/mn10300/kernel/entry.S | 18 +++++
arch/mn10300/kernel/internal.h | 6 +--
arch/mn10300/kernel/kernel_execve.S | 37 ----------
arch/mn10300/kernel/kthread.S | 31 ---------
arch/mn10300/kernel/process.c | 91 ++++++-------------------
arch/mn10300/kernel/signal.c | 13 ----
arch/openrisc/include/asm/thread_info.h | 3 +-
arch/parisc/hpux/gate.S | 2 +-
arch/parisc/include/asm/thread_info.h | 5 +-
arch/parisc/kernel/signal.c | 45 ++++--------
arch/parisc/kernel/syscall.S | 9 ++-
arch/powerpc/Kconfig | 1 +
arch/powerpc/include/asm/processor.h | 3 -
arch/powerpc/include/asm/ptrace.h | 2 +
arch/powerpc/include/asm/syscalls.h | 3 -
arch/powerpc/include/asm/thread_info.h | 2 +
arch/powerpc/include/asm/unistd.h | 2 +
arch/powerpc/kernel/entry_32.S | 16 +++++
arch/powerpc/kernel/entry_64.S | 16 +++++
arch/powerpc/kernel/misc.S | 7 --
arch/powerpc/kernel/misc_32.S | 33 ---------
arch/powerpc/kernel/misc_64.S | 34 ---------
arch/powerpc/kernel/ppc_ksyms.c | 1 -
arch/powerpc/kernel/process.c | 59 ++++++++---------
arch/powerpc/kernel/signal_32.c | 1 -
arch/powerpc/kernel/sys_ppc32.c | 22 ------
arch/s390/include/asm/thread_info.h | 4 -
arch/score/include/asm/thread_info.h | 4 -
arch/score/kernel/signal.c | 1 +
arch/sh/include/asm/thread_info.h | 3 +
arch/sh/kernel/signal_32.c | 1 -
arch/sh/kernel/signal_64.c | 1 -
arch/sparc/include/asm/thread_info_32.h | 3 +-
arch/sparc/include/asm/thread_info_64.h | 3 +
arch/tile/kernel/compat_signal.c | 9 ---
arch/tile/kernel/signal.c | 12 +---
arch/um/include/asm/thread_info.h | 3 -
arch/unicore32/include/asm/thread_info.h | 4 +-
arch/unicore32/kernel/entry.S | 2 -
arch/unicore32/kernel/signal.c | 1 -
arch/x86/kernel/entry_32.S | 17 ++---
arch/xtensa/include/asm/thread_info.h | 5 --
arch/xtensa/kernel/signal.c | 4 -
kernel/sched/core.c | 2 +-
105 files changed, 363 insertions(+), 944 deletions(-)
delete mode 100644 arch/frv/kernel/kernel_execve.S
delete mode 100644 arch/frv/kernel/kernel_thread.S
delete mode 100644 arch/mn10300/kernel/kernel_execve.S
delete mode 100644 arch/mn10300/kernel/kthread.S