Message ID | 20210429190734.624918-3-elver@google.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/3] sparc64: Add compile-time asserts for siginfo_t offsets | expand |
Hi Marco, On Thu, Apr 29, 2021 at 09:07:34PM +0200, Marco Elver wrote: > To help catch ABI breaks at compile-time, add compile-time assertions to > verify the siginfo_t layout. > > Signed-off-by: Marco Elver <elver@google.com> > --- > arch/arm64/kernel/signal.c | 36 ++++++++++++++++++++++++++++++++++++ > arch/arm64/kernel/signal32.c | 36 ++++++++++++++++++++++++++++++++++++ > 2 files changed, 72 insertions(+) Do you want me to queue this patch in the arm64 tree, or is the series all going together via another route? Thanks, Will
On Wed, 26 May 2021 at 19:42, Will Deacon <will@kernel.org> wrote: > Hi Marco, > > On Thu, Apr 29, 2021 at 09:07:34PM +0200, Marco Elver wrote: > > To help catch ABI breaks at compile-time, add compile-time assertions to > > verify the siginfo_t layout. > > > > Signed-off-by: Marco Elver <elver@google.com> > > --- > > arch/arm64/kernel/signal.c | 36 ++++++++++++++++++++++++++++++++++++ > > arch/arm64/kernel/signal32.c | 36 ++++++++++++++++++++++++++++++++++++ > > 2 files changed, 72 insertions(+) > > Do you want me to queue this patch in the arm64 tree, or is the series all > going together via another route? I think Eric will queue them together with a bunch of other cleanups, because as-is these patches are out-of-date as of: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a0e31f3a38e77612ed8967aaad28db6d3ee674b5 Thanks, -- Marco
On Wed, May 26, 2021 at 07:50:41PM +0200, Marco Elver wrote: > On Wed, 26 May 2021 at 19:42, Will Deacon <will@kernel.org> wrote: > > Hi Marco, > > > > On Thu, Apr 29, 2021 at 09:07:34PM +0200, Marco Elver wrote: > > > To help catch ABI breaks at compile-time, add compile-time assertions to > > > verify the siginfo_t layout. > > > > > > Signed-off-by: Marco Elver <elver@google.com> > > > --- > > > arch/arm64/kernel/signal.c | 36 ++++++++++++++++++++++++++++++++++++ > > > arch/arm64/kernel/signal32.c | 36 ++++++++++++++++++++++++++++++++++++ > > > 2 files changed, 72 insertions(+) > > > > Do you want me to queue this patch in the arm64 tree, or is the series all > > going together via another route? > > I think Eric will queue them together with a bunch of other cleanups, > because as-is these patches are out-of-date as of: > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a0e31f3a38e77612ed8967aaad28db6d3ee674b5 Ok, thanks. I will ignore this then :) Will
On Wed, 26 May 2021 at 20:29, Will Deacon <will@kernel.org> wrote: > On Wed, May 26, 2021 at 07:50:41PM +0200, Marco Elver wrote: > > On Wed, 26 May 2021 at 19:42, Will Deacon <will@kernel.org> wrote: > > > Hi Marco, > > > > > > On Thu, Apr 29, 2021 at 09:07:34PM +0200, Marco Elver wrote: > > > > To help catch ABI breaks at compile-time, add compile-time assertions to > > > > verify the siginfo_t layout. > > > > > > > > Signed-off-by: Marco Elver <elver@google.com> > > > > --- > > > > arch/arm64/kernel/signal.c | 36 ++++++++++++++++++++++++++++++++++++ > > > > arch/arm64/kernel/signal32.c | 36 ++++++++++++++++++++++++++++++++++++ > > > > 2 files changed, 72 insertions(+) > > > > > > Do you want me to queue this patch in the arm64 tree, or is the series all > > > going together via another route? > > > > I think Eric will queue them together with a bunch of other cleanups, > > because as-is these patches are out-of-date as of: > > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a0e31f3a38e77612ed8967aaad28db6d3ee674b5 > > Ok, thanks. I will ignore this then :) Eric, are these static_assert patches being sent this merge-window along with the other cleanups? Thanks, -- Marco
On Fri, 2 Jul 2021 at 10:51, Marco Elver <elver@google.com> wrote: > On Wed, 26 May 2021 at 20:29, Will Deacon <will@kernel.org> wrote: > > On Wed, May 26, 2021 at 07:50:41PM +0200, Marco Elver wrote: > > > On Wed, 26 May 2021 at 19:42, Will Deacon <will@kernel.org> wrote: > > > > Hi Marco, > > > > > > > > On Thu, Apr 29, 2021 at 09:07:34PM +0200, Marco Elver wrote: > > > > > To help catch ABI breaks at compile-time, add compile-time assertions to > > > > > verify the siginfo_t layout. > > > > > > > > > > Signed-off-by: Marco Elver <elver@google.com> > > > > > --- > > > > > arch/arm64/kernel/signal.c | 36 ++++++++++++++++++++++++++++++++++++ > > > > > arch/arm64/kernel/signal32.c | 36 ++++++++++++++++++++++++++++++++++++ > > > > > 2 files changed, 72 insertions(+) > > > > > > > > Do you want me to queue this patch in the arm64 tree, or is the series all > > > > going together via another route? > > > > > > I think Eric will queue them together with a bunch of other cleanups, > > > because as-is these patches are out-of-date as of: > > > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a0e31f3a38e77612ed8967aaad28db6d3ee674b5 > > > > Ok, thanks. I will ignore this then :) > > Eric, are these static_assert patches being sent this merge-window > along with the other cleanups? I'm happy to send out a rebased version of this series only. I'll go ahead and do that later in the week if I don't hear objections. Thanks, -- Marco
diff --git a/arch/arm64/kernel/signal.c b/arch/arm64/kernel/signal.c index 6237486ff6bb..af8bd2af1298 100644 --- a/arch/arm64/kernel/signal.c +++ b/arch/arm64/kernel/signal.c @@ -973,3 +973,39 @@ void __init minsigstksz_setup(void) round_up(sizeof(struct frame_record), 16) + 16; /* max alignment padding */ } + +/* + * Compile-time assertions for siginfo_t offsets. Check NSIG* as well, as + * changes likely come with new fields that should be added below. + */ +static_assert(NSIGILL == 11); +static_assert(NSIGFPE == 15); +static_assert(NSIGSEGV == 9); +static_assert(NSIGBUS == 5); +static_assert(NSIGTRAP == 6); +static_assert(NSIGCHLD == 6); +static_assert(NSIGSYS == 2); +static_assert(offsetof(siginfo_t, si_signo) == 0x00); +static_assert(offsetof(siginfo_t, si_errno) == 0x04); +static_assert(offsetof(siginfo_t, si_code) == 0x08); +static_assert(offsetof(siginfo_t, si_pid) == 0x10); +static_assert(offsetof(siginfo_t, si_uid) == 0x14); +static_assert(offsetof(siginfo_t, si_tid) == 0x10); +static_assert(offsetof(siginfo_t, si_overrun) == 0x14); +static_assert(offsetof(siginfo_t, si_status) == 0x18); +static_assert(offsetof(siginfo_t, si_utime) == 0x20); +static_assert(offsetof(siginfo_t, si_stime) == 0x28); +static_assert(offsetof(siginfo_t, si_value) == 0x18); +static_assert(offsetof(siginfo_t, si_int) == 0x18); +static_assert(offsetof(siginfo_t, si_ptr) == 0x18); +static_assert(offsetof(siginfo_t, si_addr) == 0x10); +static_assert(offsetof(siginfo_t, si_addr_lsb) == 0x18); +static_assert(offsetof(siginfo_t, si_lower) == 0x20); +static_assert(offsetof(siginfo_t, si_upper) == 0x28); +static_assert(offsetof(siginfo_t, si_pkey) == 0x20); +static_assert(offsetof(siginfo_t, si_perf) == 0x18); +static_assert(offsetof(siginfo_t, si_band) == 0x10); +static_assert(offsetof(siginfo_t, si_fd) == 0x18); +static_assert(offsetof(siginfo_t, si_call_addr) == 0x10); +static_assert(offsetof(siginfo_t, si_syscall) == 0x18); +static_assert(offsetof(siginfo_t, si_arch) == 0x1c); diff --git a/arch/arm64/kernel/signal32.c b/arch/arm64/kernel/signal32.c index 2f507f565c48..b6afb646515f 100644 --- a/arch/arm64/kernel/signal32.c +++ b/arch/arm64/kernel/signal32.c @@ -457,3 +457,39 @@ void compat_setup_restart_syscall(struct pt_regs *regs) { regs->regs[7] = __NR_compat_restart_syscall; } + +/* + * Compile-time assertions for siginfo_t offsets. Check NSIG* as well, as + * changes likely come with new fields that should be added below. + */ +static_assert(NSIGILL == 11); +static_assert(NSIGFPE == 15); +static_assert(NSIGSEGV == 9); +static_assert(NSIGBUS == 5); +static_assert(NSIGTRAP == 6); +static_assert(NSIGCHLD == 6); +static_assert(NSIGSYS == 2); +static_assert(offsetof(compat_siginfo_t, si_signo) == 0x00); +static_assert(offsetof(compat_siginfo_t, si_errno) == 0x04); +static_assert(offsetof(compat_siginfo_t, si_code) == 0x08); +static_assert(offsetof(compat_siginfo_t, si_pid) == 0x0c); +static_assert(offsetof(compat_siginfo_t, si_uid) == 0x10); +static_assert(offsetof(compat_siginfo_t, si_tid) == 0x0c); +static_assert(offsetof(compat_siginfo_t, si_overrun) == 0x10); +static_assert(offsetof(compat_siginfo_t, si_status) == 0x14); +static_assert(offsetof(compat_siginfo_t, si_utime) == 0x18); +static_assert(offsetof(compat_siginfo_t, si_stime) == 0x1c); +static_assert(offsetof(compat_siginfo_t, si_value) == 0x14); +static_assert(offsetof(compat_siginfo_t, si_int) == 0x14); +static_assert(offsetof(compat_siginfo_t, si_ptr) == 0x14); +static_assert(offsetof(compat_siginfo_t, si_addr) == 0x0c); +static_assert(offsetof(compat_siginfo_t, si_addr_lsb) == 0x10); +static_assert(offsetof(compat_siginfo_t, si_lower) == 0x14); +static_assert(offsetof(compat_siginfo_t, si_upper) == 0x18); +static_assert(offsetof(compat_siginfo_t, si_pkey) == 0x14); +static_assert(offsetof(compat_siginfo_t, si_perf) == 0x10); +static_assert(offsetof(compat_siginfo_t, si_band) == 0x0c); +static_assert(offsetof(compat_siginfo_t, si_fd) == 0x10); +static_assert(offsetof(compat_siginfo_t, si_call_addr) == 0x0c); +static_assert(offsetof(compat_siginfo_t, si_syscall) == 0x10); +static_assert(offsetof(compat_siginfo_t, si_arch) == 0x14);
To help catch ABI breaks at compile-time, add compile-time assertions to verify the siginfo_t layout. Signed-off-by: Marco Elver <elver@google.com> --- arch/arm64/kernel/signal.c | 36 ++++++++++++++++++++++++++++++++++++ arch/arm64/kernel/signal32.c | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+)