Thread (16 messages) 16 messages, 6 authors, 2012-10-17

[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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help