[REVIEW][PATCH 00/20] siginfo cleanups for x86

From: Eric W. Biederman
Date: Mon Sep 17 2018 - 20:03:32 EST



I have been slowly going thought and reworking the arch specific
functions that generate siginfo. The problems I have been addressing
is that using siginfo directly is error prone. Using siginfo directly
makes it easy to leave fields initialized, and get confused about
which fields need to be filled in.

To address this I have added a series of helper functions to
kernel/signal.c, that are specific to exactly one use of struct siginfo
and take the parameters they need.

To use these functions the x86 signal handling needs some cleanups but
the net result appears to be less code that is easier to follow.

If while looking over these patches you see anything please let me know.
I don't think I missed something but to err is human.

Likewise if you would like to merge these patches via the tip tree
let me know. Otherwise after the review is complete I plan on merging
these into my siginfo tree. At this point I believe all of the
prerequisite patches are merged so it should not make a difference.

Eric W. Biederman (20):
signal: Simplify tracehook_report_syscall_exit
signal/x86: Inline fill_sigtrap_info in it's only caller send_sigtrap
signal/x86: Move MCE error reporting out of force_sig_info_fault
signal/x86: Use send_sig_mceerr as apropriate
signal/x86: In trace_mpx_bounds_register_exception add __user annotations
signal/x86: Move mpx siginfo generation into do_bounds
signal/x86/traps: Factor out show_signal
signal/x86/traps: Move setting error_code and trap_nr into do_trap_no_signal
signal/x86/traps: Use force_sig_bnderr
signal/x86/traps: Use force_sig instead of open coding it.
signal/x86/traps: Simplify trap generation
signal/x86: Remove pkey parameter from bad_area_nosemaphore
signal/x86: Remove the pkey parameter from do_sigbus
signal/x86: Remove pkey parameter from mm_fault_error
signal/x86: Don't compute pkey in __do_page_fault
signal/x86: Pass pkey not vma into __bad_area
signal/x86: Call force_sig_pkuerr from __bad_area_nosemaphore
signal/x86: Replace force_sig_info_fault with force_sig_fault
signal/x86: Pass pkey by value
signal/x86: Use force_sig_fault where appropriate

arch/powerpc/include/asm/ptrace.h | 2 +-
arch/powerpc/kernel/traps.c | 7 +-
arch/x86/entry/vsyscall/vsyscall_64.c | 9 +-
arch/x86/include/asm/mpx.h | 13 ++-
arch/x86/include/asm/ptrace.h | 2 +-
arch/x86/include/asm/trace/mpx.h | 4 +-
arch/x86/kernel/ptrace.c | 29 ++----
arch/x86/kernel/traps.c | 175 ++++++++++++++--------------------
arch/x86/kernel/umip.c | 8 +-
arch/x86/kvm/mmu.c | 11 +--
arch/x86/mm/fault.c | 161 +++++++++++--------------------
arch/x86/mm/mpx.c | 30 ++----
include/linux/ptrace.h | 17 ++--
include/linux/tracehook.h | 13 +--
14 files changed, 175 insertions(+), 306 deletions(-)

Eric