linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* properly support exec and wait with kernel pointers
@ 2020-06-15 13:00 Christoph Hellwig
  2020-06-15 13:00 ` [PATCH 1/6] exec: cleanup the execve wrappers Christoph Hellwig
                   ` (6 more replies)
  0 siblings, 7 replies; 20+ messages in thread
From: Christoph Hellwig @ 2020-06-15 13:00 UTC (permalink / raw)
  To: Al Viro
  Cc: Arnd Bergmann, Luis Chamberlain, linux-arm-kernel, x86,
	linux-mips, linux-parisc, linuxppc-dev, linux-s390, sparclinux,
	linux-fsdevel, linux-arch, linux-kernel

Hi all,

this series first cleans up the exec code and then adds proper
kernel_execveat and kernel_wait callers instead of relying on the fact
that the early init code and kernel threads implicitly run with
the address limit set to KERNEL_DS.

Note that the cleanup removes the compat execve(at) handlers (almost)
entirely, as we can handle the compat difference very nicely in a
unified codebase.  The only exception is x86 where this would list the
handlers twice in the same syscall table due to the messed up x32
design.  I had to add an extra compat handler just for that case, but
maybe someone has a better idea.

^ permalink raw reply	[flat|nested] 20+ messages in thread
* properly support exec and wait with kernel pointers v2
@ 2020-06-18 14:46 Christoph Hellwig
  2020-06-18 14:46 ` [PATCH 2/6] exec: simplify the compat syscall handling Christoph Hellwig
  0 siblings, 1 reply; 20+ messages in thread
From: Christoph Hellwig @ 2020-06-18 14:46 UTC (permalink / raw)
  To: Al Viro
  Cc: Arnd Bergmann, Brian Gerst, Luis Chamberlain, linux-arm-kernel,
	x86, linux-mips, linux-parisc, linuxppc-dev, linux-s390,
	sparclinux, linux-fsdevel, linux-arch, linux-kernel

Hi all,

this series first cleans up the exec code and then adds proper
kernel_execveat and kernel_wait callers instead of relying on the fact
that the early init code and kernel threads implicitly run with
the address limit set to KERNEL_DS.

Note that the cleanup removes the compat execve(at) handlers entirely, as
we can handle the compat difference very nicely in a unified codebase.
x32 needs two hacky #defines for that for now, although those can go
away if the x32 syscall rework from Brian gets merged.

Changes since v1:
 - remove a pointless ifdef from get_user_arg_ptr
 - remove the need for a compat syscall handler for x32


Diffstat:
 arch/arm64/include/asm/unistd32.h                  |    4 
 arch/mips/kernel/syscalls/syscall_n32.tbl          |    4 
 arch/mips/kernel/syscalls/syscall_o32.tbl          |    4 
 arch/parisc/kernel/syscalls/syscall.tbl            |    4 
 arch/powerpc/kernel/syscalls/syscall.tbl           |    4 
 arch/s390/kernel/syscalls/syscall.tbl              |    4 
 arch/sparc/kernel/syscalls.S                       |    4 
 arch/x86/entry/syscall_x32.c                       |    7 
 arch/x86/entry/syscalls/syscall_32.tbl             |    4 
 arch/x86/entry/syscalls/syscall_64.tbl             |    4 
 fs/exec.c                                          |  248 ++++++++-------------
 include/linux/binfmts.h                            |   10 
 include/linux/compat.h                             |    7 
 include/linux/sched/task.h                         |    1 
 include/uapi/asm-generic/unistd.h                  |    4 
 init/main.c                                        |    5 
 kernel/exit.c                                      |   16 +
 kernel/umh.c                                       |   43 ---
 tools/include/uapi/asm-generic/unistd.h            |    4 
 tools/perf/arch/powerpc/entry/syscalls/syscall.tbl |    4 
 tools/perf/arch/s390/entry/syscalls/syscall.tbl    |    4 
 tools/perf/arch/x86/entry/syscalls/syscall_64.tbl  |    4 
 22 files changed, 170 insertions(+), 223 deletions(-)

^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2020-06-18 14:47 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-15 13:00 properly support exec and wait with kernel pointers Christoph Hellwig
2020-06-15 13:00 ` [PATCH 1/6] exec: cleanup the execve wrappers Christoph Hellwig
2020-06-15 13:00 ` [PATCH 2/6] exec: simplify the compat syscall handling Christoph Hellwig
2020-06-15 13:31   ` Arnd Bergmann
2020-06-15 14:12     ` Christoph Hellwig
2020-06-15 14:40       ` Arnd Bergmann
2020-06-15 14:43         ` Christoph Hellwig
2020-06-15 14:46           ` Arnd Bergmann
2020-06-15 15:09             ` Christoph Hellwig
2020-06-15 15:33               ` Brian Gerst
2020-06-15 16:41                 ` Christoph Hellwig
2020-06-15 14:48       ` Brian Gerst
2020-06-15 18:47         ` Arnd Bergmann
2020-06-15 19:45           ` Brian Gerst
2020-06-15 13:00 ` [PATCH 3/6] exec: cleanup the count() function Christoph Hellwig
2020-06-15 13:00 ` [PATCH 4/6] exec: split prepare_arg_pages Christoph Hellwig
2020-06-15 13:00 ` [PATCH 5/6] exec: add a kernel_execveat helper Christoph Hellwig
2020-06-15 13:00 ` [PATCH 6/6] kernel: add a kernel_wait helper Christoph Hellwig
2020-06-15 13:42 ` properly support exec and wait with kernel pointers Arnd Bergmann
2020-06-18 14:46 properly support exec and wait with kernel pointers v2 Christoph Hellwig
2020-06-18 14:46 ` [PATCH 2/6] exec: simplify the compat syscall handling Christoph Hellwig

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).