Final si_trapno bits
authorEric W. Biederman <ebiederm@xmission.com>
Fri, 23 Jul 2021 18:26:44 +0000 (13:26 -0500)
committerEric W. Biederman <ebiederm@xmission.com>
Fri, 23 Jul 2021 18:31:52 +0000 (13:31 -0500)
As a part of a fix for the ABI of the newly added SIGTRAP TRAP_PERF a
si_trapno was reduced to an ordinary extention of the _sigfault case
of struct siginfo.

When Linus saw the complete set of changes come in as a fix he requested
that the set of changes be trimmed down to just what was necessary to
fix the SIGTRAP TRAP_PERF ABI.

I had intended to get the rest of the changes into the merge window for
v5.14 but I dropped the ball.

I have made the changes to stop using __ARCH_SI_TRAPNO be per
architecture so they are easier to review.  In doing so I found one
place on alpha where I used send_sig_fault instead of
send_sig_fault_trapno(... si_trapno = 0).  That would not have changed
the userspace behavior but it did make the kernel code less clear.

My rule in these patches is everywhere that siginfo layout calls
for SIL_FAULT_TRAPNO the code uses either force_sig_fault_trapno
or send_sig_fault_trapno.

And of course I have rebased and compile tested Marco's compile time
assert patches.

v1: https://lkml.kernel.org/r/m1zgxfs7zq.fsf_-_@fess.ebiederm.org
v2: https://lkml.kernel.org/r/m14kfjh8et.fsf_-_@fess.ebiederm.org
v3: https://lkml.kernel.org/r/m1tuni8ano.fsf_-_@fess.ebiederm.org
v4: https://lkml.kernel.org/r/m1a6ot5e2h.fsf_-_@fess.ebiederm.org
Link: https://lkml.kernel.org/r/87a6mnzbx2.fsf_-_@disp2133
Eric W. Biederman (5):
      signal/sparc: si_trapno is only used with SIGILL ILL_ILLTRP
      signal/alpha: si_trapno is only used with SIGFPE and SIGTRAP TRAP_UNK
      signal: Remove the generic __ARCH_SI_TRAPNO support
      signal: Verify the alignment and size of siginfo_t
      signal: Rename SIL_PERF_EVENT SIL_FAULT_PERF_EVENT for consistency

Marco Elver (3):
      sparc64: Add compile-time asserts for siginfo_t offsets
      arm: Add compile-time asserts for siginfo_t offsets
      arm64: Add compile-time asserts for siginfo_t offsets

 arch/alpha/include/uapi/asm/siginfo.h |  2 --
 arch/alpha/kernel/osf_sys.c           |  2 +-
 arch/alpha/kernel/signal.c            |  4 +--
 arch/alpha/kernel/traps.c             | 26 +++++++--------
 arch/alpha/mm/fault.c                 |  4 +--
 arch/arm/kernel/signal.c              | 39 ++++++++++++++++++++++
 arch/arm64/kernel/signal.c            | 39 ++++++++++++++++++++++
 arch/arm64/kernel/signal32.c          | 39 ++++++++++++++++++++++
 arch/mips/include/uapi/asm/siginfo.h  |  2 --
 arch/sparc/include/uapi/asm/siginfo.h |  3 --
 arch/sparc/kernel/process_64.c        |  2 +-
 arch/sparc/kernel/signal32.c          | 37 +++++++++++++++++++++
 arch/sparc/kernel/signal_64.c         | 36 ++++++++++++++++++++
 arch/sparc/kernel/sys_sparc_32.c      |  2 +-
 arch/sparc/kernel/sys_sparc_64.c      |  2 +-
 arch/sparc/kernel/traps_32.c          | 22 ++++++-------
 arch/sparc/kernel/traps_64.c          | 44 +++++++++++--------------
 arch/sparc/kernel/unaligned_32.c      |  2 +-
 arch/sparc/mm/fault_32.c              |  2 +-
 arch/sparc/mm/fault_64.c              |  2 +-
 arch/x86/kernel/signal_compat.c       |  6 ++++
 fs/signalfd.c                         |  4 +--
 include/linux/sched/signal.h          | 11 ++-----
 include/linux/signal.h                |  2 +-
 include/uapi/asm-generic/siginfo.h    |  5 +++
 kernel/signal.c                       | 62 +++++++++++++++++++++++++----------
 26 files changed, 305 insertions(+), 96 deletions(-)


Trivial merge