All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/3] sparc64: Add compile-time asserts for siginfo_t offsets
@ 2021-04-29 19:07 ` Marco Elver
  0 siblings, 0 replies; 22+ messages in thread
From: Marco Elver @ 2021-04-29 19:07 UTC (permalink / raw)
  To: elver, ebiederm
  Cc: linux, catalin.marinas, will, davem, mark.rutland,
	linux-arm-kernel, linux-kernel, sparclinux

To help catch ABI breaks at compile-time, add compile-time assertions to
verify the siginfo_t layout. Unlike other architectures, sparc64 is
special, because it is one of few architectures requiring si_trapno.
ABI breaks around that field would only be caught here.

Link: https://lkml.kernel.org/r/m11rat9f85.fsf@fess.ebiederm.org
Suggested-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: Marco Elver <elver@google.com>
---
 arch/sparc/kernel/signal32.c  | 34 ++++++++++++++++++++++++++++++++++
 arch/sparc/kernel/signal_64.c | 33 +++++++++++++++++++++++++++++++++
 2 files changed, 67 insertions(+)

diff --git a/arch/sparc/kernel/signal32.c b/arch/sparc/kernel/signal32.c
index e9695a06492f..778ed5c26d4a 100644
--- a/arch/sparc/kernel/signal32.c
+++ b/arch/sparc/kernel/signal32.c
@@ -745,3 +745,37 @@ asmlinkage int do_sys32_sigstack(u32 u_ssptr, u32 u_ossptr, unsigned long sp)
 out:
 	return ret;
 }
+
+/*
+ * 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_trapno)	== 0x10);
+static_assert(offsetof(compat_siginfo_t, si_addr_lsb)	== 0x14);
+static_assert(offsetof(compat_siginfo_t, si_lower)	== 0x18);
+static_assert(offsetof(compat_siginfo_t, si_upper)	== 0x1c);
+static_assert(offsetof(compat_siginfo_t, si_pkey)	== 0x18);
+static_assert(offsetof(compat_siginfo_t, si_perf)	== 0x14);
+static_assert(offsetof(compat_siginfo_t, si_band)	== 0x0c);
+static_assert(offsetof(compat_siginfo_t, si_fd)		== 0x10);
diff --git a/arch/sparc/kernel/signal_64.c b/arch/sparc/kernel/signal_64.c
index a0eec62c825d..c9bbf5f29078 100644
--- a/arch/sparc/kernel/signal_64.c
+++ b/arch/sparc/kernel/signal_64.c
@@ -556,3 +556,36 @@ void do_notify_resume(struct pt_regs *regs, unsigned long orig_i0, unsigned long
 	user_enter();
 }
 
+/*
+ * 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_trapno)	== 0x18);
+static_assert(offsetof(siginfo_t, si_addr_lsb)	== 0x20);
+static_assert(offsetof(siginfo_t, si_lower)	== 0x28);
+static_assert(offsetof(siginfo_t, si_upper)	== 0x30);
+static_assert(offsetof(siginfo_t, si_pkey)	== 0x28);
+static_assert(offsetof(siginfo_t, si_perf)	== 0x20);
+static_assert(offsetof(siginfo_t, si_band)	== 0x10);
+static_assert(offsetof(siginfo_t, si_fd)	== 0x14);
-- 
2.31.1.527.g47e6f16901-goog


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

* [PATCH 1/3] sparc64: Add compile-time asserts for siginfo_t offsets
@ 2021-04-29 19:07 ` Marco Elver
  0 siblings, 0 replies; 22+ messages in thread
From: Marco Elver @ 2021-04-29 19:07 UTC (permalink / raw)
  To: elver, ebiederm
  Cc: linux, catalin.marinas, will, davem, mark.rutland,
	linux-arm-kernel, linux-kernel, sparclinux

To help catch ABI breaks at compile-time, add compile-time assertions to
verify the siginfo_t layout. Unlike other architectures, sparc64 is
special, because it is one of few architectures requiring si_trapno.
ABI breaks around that field would only be caught here.

Link: https://lkml.kernel.org/r/m11rat9f85.fsf@fess.ebiederm.org
Suggested-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: Marco Elver <elver@google.com>
---
 arch/sparc/kernel/signal32.c  | 34 ++++++++++++++++++++++++++++++++++
 arch/sparc/kernel/signal_64.c | 33 +++++++++++++++++++++++++++++++++
 2 files changed, 67 insertions(+)

diff --git a/arch/sparc/kernel/signal32.c b/arch/sparc/kernel/signal32.c
index e9695a06492f..778ed5c26d4a 100644
--- a/arch/sparc/kernel/signal32.c
+++ b/arch/sparc/kernel/signal32.c
@@ -745,3 +745,37 @@ asmlinkage int do_sys32_sigstack(u32 u_ssptr, u32 u_ossptr, unsigned long sp)
 out:
 	return ret;
 }
+
+/*
+ * 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_trapno)	== 0x10);
+static_assert(offsetof(compat_siginfo_t, si_addr_lsb)	== 0x14);
+static_assert(offsetof(compat_siginfo_t, si_lower)	== 0x18);
+static_assert(offsetof(compat_siginfo_t, si_upper)	== 0x1c);
+static_assert(offsetof(compat_siginfo_t, si_pkey)	== 0x18);
+static_assert(offsetof(compat_siginfo_t, si_perf)	== 0x14);
+static_assert(offsetof(compat_siginfo_t, si_band)	== 0x0c);
+static_assert(offsetof(compat_siginfo_t, si_fd)		== 0x10);
diff --git a/arch/sparc/kernel/signal_64.c b/arch/sparc/kernel/signal_64.c
index a0eec62c825d..c9bbf5f29078 100644
--- a/arch/sparc/kernel/signal_64.c
+++ b/arch/sparc/kernel/signal_64.c
@@ -556,3 +556,36 @@ void do_notify_resume(struct pt_regs *regs, unsigned long orig_i0, unsigned long
 	user_enter();
 }
 
+/*
+ * 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_trapno)	== 0x18);
+static_assert(offsetof(siginfo_t, si_addr_lsb)	== 0x20);
+static_assert(offsetof(siginfo_t, si_lower)	== 0x28);
+static_assert(offsetof(siginfo_t, si_upper)	== 0x30);
+static_assert(offsetof(siginfo_t, si_pkey)	== 0x28);
+static_assert(offsetof(siginfo_t, si_perf)	== 0x20);
+static_assert(offsetof(siginfo_t, si_band)	== 0x10);
+static_assert(offsetof(siginfo_t, si_fd)	== 0x14);
-- 
2.31.1.527.g47e6f16901-goog


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* [PATCH 2/3] arm: Add compile-time asserts for siginfo_t offsets
  2021-04-29 19:07 ` Marco Elver
@ 2021-04-29 19:07   ` Marco Elver
  -1 siblings, 0 replies; 22+ messages in thread
From: Marco Elver @ 2021-04-29 19:07 UTC (permalink / raw)
  To: elver, ebiederm
  Cc: linux, catalin.marinas, will, davem, mark.rutland,
	linux-arm-kernel, linux-kernel, sparclinux

To help catch ABI breaks at compile-time, add compile-time assertions to
verify the siginfo_t layout.

This could have caught that we cannot portably add 64-bit integers to
siginfo_t on 32-bit architectures like Arm before reaching -next:
https://lkml.kernel.org/r/20210422191823.79012-1-elver@google.com

Signed-off-by: Marco Elver <elver@google.com>
---
 arch/arm/kernel/signal.c | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/arch/arm/kernel/signal.c b/arch/arm/kernel/signal.c
index a3a38d0a4c85..2dac5d2c5cf6 100644
--- a/arch/arm/kernel/signal.c
+++ b/arch/arm/kernel/signal.c
@@ -725,3 +725,39 @@ asmlinkage void do_rseq_syscall(struct pt_regs *regs)
 	rseq_syscall(regs);
 }
 #endif
+
+/*
+ * 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)	== 0x0c);
+static_assert(offsetof(siginfo_t, si_uid)	== 0x10);
+static_assert(offsetof(siginfo_t, si_tid)	== 0x0c);
+static_assert(offsetof(siginfo_t, si_overrun)	== 0x10);
+static_assert(offsetof(siginfo_t, si_status)	== 0x14);
+static_assert(offsetof(siginfo_t, si_utime)	== 0x18);
+static_assert(offsetof(siginfo_t, si_stime)	== 0x1c);
+static_assert(offsetof(siginfo_t, si_value)	== 0x14);
+static_assert(offsetof(siginfo_t, si_int)	== 0x14);
+static_assert(offsetof(siginfo_t, si_ptr)	== 0x14);
+static_assert(offsetof(siginfo_t, si_addr)	== 0x0c);
+static_assert(offsetof(siginfo_t, si_addr_lsb)	== 0x10);
+static_assert(offsetof(siginfo_t, si_lower)	== 0x14);
+static_assert(offsetof(siginfo_t, si_upper)	== 0x18);
+static_assert(offsetof(siginfo_t, si_pkey)	== 0x14);
+static_assert(offsetof(siginfo_t, si_perf)	== 0x10);
+static_assert(offsetof(siginfo_t, si_band)	== 0x0c);
+static_assert(offsetof(siginfo_t, si_fd)	== 0x10);
+static_assert(offsetof(siginfo_t, si_call_addr)	== 0x0c);
+static_assert(offsetof(siginfo_t, si_syscall)	== 0x10);
+static_assert(offsetof(siginfo_t, si_arch)	== 0x14);
-- 
2.31.1.527.g47e6f16901-goog


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

* [PATCH 2/3] arm: Add compile-time asserts for siginfo_t offsets
@ 2021-04-29 19:07   ` Marco Elver
  0 siblings, 0 replies; 22+ messages in thread
From: Marco Elver @ 2021-04-29 19:07 UTC (permalink / raw)
  To: elver, ebiederm
  Cc: linux, catalin.marinas, will, davem, mark.rutland,
	linux-arm-kernel, linux-kernel, sparclinux

To help catch ABI breaks at compile-time, add compile-time assertions to
verify the siginfo_t layout.

This could have caught that we cannot portably add 64-bit integers to
siginfo_t on 32-bit architectures like Arm before reaching -next:
https://lkml.kernel.org/r/20210422191823.79012-1-elver@google.com

Signed-off-by: Marco Elver <elver@google.com>
---
 arch/arm/kernel/signal.c | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/arch/arm/kernel/signal.c b/arch/arm/kernel/signal.c
index a3a38d0a4c85..2dac5d2c5cf6 100644
--- a/arch/arm/kernel/signal.c
+++ b/arch/arm/kernel/signal.c
@@ -725,3 +725,39 @@ asmlinkage void do_rseq_syscall(struct pt_regs *regs)
 	rseq_syscall(regs);
 }
 #endif
+
+/*
+ * 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)	== 0x0c);
+static_assert(offsetof(siginfo_t, si_uid)	== 0x10);
+static_assert(offsetof(siginfo_t, si_tid)	== 0x0c);
+static_assert(offsetof(siginfo_t, si_overrun)	== 0x10);
+static_assert(offsetof(siginfo_t, si_status)	== 0x14);
+static_assert(offsetof(siginfo_t, si_utime)	== 0x18);
+static_assert(offsetof(siginfo_t, si_stime)	== 0x1c);
+static_assert(offsetof(siginfo_t, si_value)	== 0x14);
+static_assert(offsetof(siginfo_t, si_int)	== 0x14);
+static_assert(offsetof(siginfo_t, si_ptr)	== 0x14);
+static_assert(offsetof(siginfo_t, si_addr)	== 0x0c);
+static_assert(offsetof(siginfo_t, si_addr_lsb)	== 0x10);
+static_assert(offsetof(siginfo_t, si_lower)	== 0x14);
+static_assert(offsetof(siginfo_t, si_upper)	== 0x18);
+static_assert(offsetof(siginfo_t, si_pkey)	== 0x14);
+static_assert(offsetof(siginfo_t, si_perf)	== 0x10);
+static_assert(offsetof(siginfo_t, si_band)	== 0x0c);
+static_assert(offsetof(siginfo_t, si_fd)	== 0x10);
+static_assert(offsetof(siginfo_t, si_call_addr)	== 0x0c);
+static_assert(offsetof(siginfo_t, si_syscall)	== 0x10);
+static_assert(offsetof(siginfo_t, si_arch)	== 0x14);
-- 
2.31.1.527.g47e6f16901-goog


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* [PATCH 3/3] arm64: Add compile-time asserts for siginfo_t offsets
  2021-04-29 19:07 ` Marco Elver
@ 2021-04-29 19:07   ` Marco Elver
  -1 siblings, 0 replies; 22+ messages in thread
From: Marco Elver @ 2021-04-29 19:07 UTC (permalink / raw)
  To: elver, ebiederm
  Cc: linux, catalin.marinas, will, davem, mark.rutland,
	linux-arm-kernel, linux-kernel, sparclinux

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(+)

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);
-- 
2.31.1.527.g47e6f16901-goog


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

* [PATCH 3/3] arm64: Add compile-time asserts for siginfo_t offsets
@ 2021-04-29 19:07   ` Marco Elver
  0 siblings, 0 replies; 22+ messages in thread
From: Marco Elver @ 2021-04-29 19:07 UTC (permalink / raw)
  To: elver, ebiederm
  Cc: linux, catalin.marinas, will, davem, mark.rutland,
	linux-arm-kernel, linux-kernel, sparclinux

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(+)

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);
-- 
2.31.1.527.g47e6f16901-goog


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* Re: [PATCH 1/3] sparc64: Add compile-time asserts for siginfo_t offsets
  2021-04-29 19:07 ` Marco Elver
@ 2021-04-30 17:42   ` Eric W. Biederman
  -1 siblings, 0 replies; 22+ messages in thread
From: Eric W. Biederman @ 2021-04-30 17:42 UTC (permalink / raw)
  To: Marco Elver
  Cc: linux, catalin.marinas, will, davem, mark.rutland,
	linux-arm-kernel, linux-kernel, sparclinux

Marco Elver <elver@google.com> writes:

> To help catch ABI breaks at compile-time, add compile-time assertions to
> verify the siginfo_t layout. Unlike other architectures, sparc64 is
> special, because it is one of few architectures requiring si_trapno.
> ABI breaks around that field would only be caught here.

Arnd Bergman recently pointed out that we can move si_trapno into the
union and make it specific to a handful of signals.  Like we do other
items in the union.

Given that the code of perf_sigtrap is pretty much broken if si_trapno
needs to be filled out.  I think we should make that change before
we set this ABI in stone like this.

Otherwise this looks good.

Eric

> Link: https://lkml.kernel.org/r/m11rat9f85.fsf@fess.ebiederm.org
> Suggested-by: Eric W. Biederman <ebiederm@xmission.com>
> Signed-off-by: Marco Elver <elver@google.com>
> ---
>  arch/sparc/kernel/signal32.c  | 34 ++++++++++++++++++++++++++++++++++
>  arch/sparc/kernel/signal_64.c | 33 +++++++++++++++++++++++++++++++++
>  2 files changed, 67 insertions(+)
>
> diff --git a/arch/sparc/kernel/signal32.c b/arch/sparc/kernel/signal32.c
> index e9695a06492f..778ed5c26d4a 100644
> --- a/arch/sparc/kernel/signal32.c
> +++ b/arch/sparc/kernel/signal32.c
> @@ -745,3 +745,37 @@ asmlinkage int do_sys32_sigstack(u32 u_ssptr, u32 u_ossptr, unsigned long sp)
>  out:
>  	return ret;
>  }
> +
> +/*
> + * 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_trapno)	== 0x10);
> +static_assert(offsetof(compat_siginfo_t, si_addr_lsb)	== 0x14);
> +static_assert(offsetof(compat_siginfo_t, si_lower)	== 0x18);
> +static_assert(offsetof(compat_siginfo_t, si_upper)	== 0x1c);
> +static_assert(offsetof(compat_siginfo_t, si_pkey)	== 0x18);
> +static_assert(offsetof(compat_siginfo_t, si_perf)	== 0x14);
> +static_assert(offsetof(compat_siginfo_t, si_band)	== 0x0c);
> +static_assert(offsetof(compat_siginfo_t, si_fd)		== 0x10);
> diff --git a/arch/sparc/kernel/signal_64.c b/arch/sparc/kernel/signal_64.c
> index a0eec62c825d..c9bbf5f29078 100644
> --- a/arch/sparc/kernel/signal_64.c
> +++ b/arch/sparc/kernel/signal_64.c
> @@ -556,3 +556,36 @@ void do_notify_resume(struct pt_regs *regs, unsigned long orig_i0, unsigned long
>  	user_enter();
>  }
>  
> +/*
> + * 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_trapno)	== 0x18);
> +static_assert(offsetof(siginfo_t, si_addr_lsb)	== 0x20);
> +static_assert(offsetof(siginfo_t, si_lower)	== 0x28);
> +static_assert(offsetof(siginfo_t, si_upper)	== 0x30);
> +static_assert(offsetof(siginfo_t, si_pkey)	== 0x28);
> +static_assert(offsetof(siginfo_t, si_perf)	== 0x20);
> +static_assert(offsetof(siginfo_t, si_band)	== 0x10);
> +static_assert(offsetof(siginfo_t, si_fd)	== 0x14);

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

* Re: [PATCH 1/3] sparc64: Add compile-time asserts for siginfo_t offsets
@ 2021-04-30 17:42   ` Eric W. Biederman
  0 siblings, 0 replies; 22+ messages in thread
From: Eric W. Biederman @ 2021-04-30 17:42 UTC (permalink / raw)
  To: Marco Elver
  Cc: linux, catalin.marinas, will, davem, mark.rutland,
	linux-arm-kernel, linux-kernel, sparclinux

Marco Elver <elver@google.com> writes:

> To help catch ABI breaks at compile-time, add compile-time assertions to
> verify the siginfo_t layout. Unlike other architectures, sparc64 is
> special, because it is one of few architectures requiring si_trapno.
> ABI breaks around that field would only be caught here.

Arnd Bergman recently pointed out that we can move si_trapno into the
union and make it specific to a handful of signals.  Like we do other
items in the union.

Given that the code of perf_sigtrap is pretty much broken if si_trapno
needs to be filled out.  I think we should make that change before
we set this ABI in stone like this.

Otherwise this looks good.

Eric

> Link: https://lkml.kernel.org/r/m11rat9f85.fsf@fess.ebiederm.org
> Suggested-by: Eric W. Biederman <ebiederm@xmission.com>
> Signed-off-by: Marco Elver <elver@google.com>
> ---
>  arch/sparc/kernel/signal32.c  | 34 ++++++++++++++++++++++++++++++++++
>  arch/sparc/kernel/signal_64.c | 33 +++++++++++++++++++++++++++++++++
>  2 files changed, 67 insertions(+)
>
> diff --git a/arch/sparc/kernel/signal32.c b/arch/sparc/kernel/signal32.c
> index e9695a06492f..778ed5c26d4a 100644
> --- a/arch/sparc/kernel/signal32.c
> +++ b/arch/sparc/kernel/signal32.c
> @@ -745,3 +745,37 @@ asmlinkage int do_sys32_sigstack(u32 u_ssptr, u32 u_ossptr, unsigned long sp)
>  out:
>  	return ret;
>  }
> +
> +/*
> + * 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_trapno)	== 0x10);
> +static_assert(offsetof(compat_siginfo_t, si_addr_lsb)	== 0x14);
> +static_assert(offsetof(compat_siginfo_t, si_lower)	== 0x18);
> +static_assert(offsetof(compat_siginfo_t, si_upper)	== 0x1c);
> +static_assert(offsetof(compat_siginfo_t, si_pkey)	== 0x18);
> +static_assert(offsetof(compat_siginfo_t, si_perf)	== 0x14);
> +static_assert(offsetof(compat_siginfo_t, si_band)	== 0x0c);
> +static_assert(offsetof(compat_siginfo_t, si_fd)		== 0x10);
> diff --git a/arch/sparc/kernel/signal_64.c b/arch/sparc/kernel/signal_64.c
> index a0eec62c825d..c9bbf5f29078 100644
> --- a/arch/sparc/kernel/signal_64.c
> +++ b/arch/sparc/kernel/signal_64.c
> @@ -556,3 +556,36 @@ void do_notify_resume(struct pt_regs *regs, unsigned long orig_i0, unsigned long
>  	user_enter();
>  }
>  
> +/*
> + * 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_trapno)	== 0x18);
> +static_assert(offsetof(siginfo_t, si_addr_lsb)	== 0x20);
> +static_assert(offsetof(siginfo_t, si_lower)	== 0x28);
> +static_assert(offsetof(siginfo_t, si_upper)	== 0x30);
> +static_assert(offsetof(siginfo_t, si_pkey)	== 0x28);
> +static_assert(offsetof(siginfo_t, si_perf)	== 0x20);
> +static_assert(offsetof(siginfo_t, si_band)	== 0x10);
> +static_assert(offsetof(siginfo_t, si_fd)	== 0x14);

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* Re: [PATCH 1/3] sparc64: Add compile-time asserts for siginfo_t offsets
  2021-04-30 17:42   ` Eric W. Biederman
@ 2021-04-30 18:11     ` Marco Elver
  -1 siblings, 0 replies; 22+ messages in thread
From: Marco Elver @ 2021-04-30 18:11 UTC (permalink / raw)
  To: Eric W. Biederman
  Cc: Russell King - ARM Linux admin, Catalin Marinas, Will Deacon,
	David S. Miller, Mark Rutland, Linux ARM, LKML, sparclinux

On Fri, 30 Apr 2021 at 19:42, Eric W. Biederman <ebiederm@xmission.com> wrote:
>
> Marco Elver <elver@google.com> writes:
>
> > To help catch ABI breaks at compile-time, add compile-time assertions to
> > verify the siginfo_t layout. Unlike other architectures, sparc64 is
> > special, because it is one of few architectures requiring si_trapno.
> > ABI breaks around that field would only be caught here.
>
> Arnd Bergman recently pointed out that we can move si_trapno into the
> union and make it specific to a handful of signals.  Like we do other
> items in the union.
>
> Given that the code of perf_sigtrap is pretty much broken if si_trapno
> needs to be filled out.  I think we should make that change before
> we set this ABI in stone like this.
>
> Otherwise this looks good.

Thanks, that's reasonable -- I'll reply to the other thread in a few minutes.

-- Marco

> Eric
>
> > Link: https://lkml.kernel.org/r/m11rat9f85.fsf@fess.ebiederm.org
> > Suggested-by: Eric W. Biederman <ebiederm@xmission.com>
> > Signed-off-by: Marco Elver <elver@google.com>
> > ---
> >  arch/sparc/kernel/signal32.c  | 34 ++++++++++++++++++++++++++++++++++
> >  arch/sparc/kernel/signal_64.c | 33 +++++++++++++++++++++++++++++++++
> >  2 files changed, 67 insertions(+)
> >
> > diff --git a/arch/sparc/kernel/signal32.c b/arch/sparc/kernel/signal32.c
> > index e9695a06492f..778ed5c26d4a 100644
> > --- a/arch/sparc/kernel/signal32.c
> > +++ b/arch/sparc/kernel/signal32.c
> > @@ -745,3 +745,37 @@ asmlinkage int do_sys32_sigstack(u32 u_ssptr, u32 u_ossptr, unsigned long sp)
> >  out:
> >       return ret;
> >  }
> > +
> > +/*
> > + * 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_trapno)  == 0x10);
> > +static_assert(offsetof(compat_siginfo_t, si_addr_lsb)        == 0x14);
> > +static_assert(offsetof(compat_siginfo_t, si_lower)   == 0x18);
> > +static_assert(offsetof(compat_siginfo_t, si_upper)   == 0x1c);
> > +static_assert(offsetof(compat_siginfo_t, si_pkey)    == 0x18);
> > +static_assert(offsetof(compat_siginfo_t, si_perf)    == 0x14);
> > +static_assert(offsetof(compat_siginfo_t, si_band)    == 0x0c);
> > +static_assert(offsetof(compat_siginfo_t, si_fd)              == 0x10);
> > diff --git a/arch/sparc/kernel/signal_64.c b/arch/sparc/kernel/signal_64.c
> > index a0eec62c825d..c9bbf5f29078 100644
> > --- a/arch/sparc/kernel/signal_64.c
> > +++ b/arch/sparc/kernel/signal_64.c
> > @@ -556,3 +556,36 @@ void do_notify_resume(struct pt_regs *regs, unsigned long orig_i0, unsigned long
> >       user_enter();
> >  }
> >
> > +/*
> > + * 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_trapno) == 0x18);
> > +static_assert(offsetof(siginfo_t, si_addr_lsb)       == 0x20);
> > +static_assert(offsetof(siginfo_t, si_lower)  == 0x28);
> > +static_assert(offsetof(siginfo_t, si_upper)  == 0x30);
> > +static_assert(offsetof(siginfo_t, si_pkey)   == 0x28);
> > +static_assert(offsetof(siginfo_t, si_perf)   == 0x20);
> > +static_assert(offsetof(siginfo_t, si_band)   == 0x10);
> > +static_assert(offsetof(siginfo_t, si_fd)     == 0x14);

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

* Re: [PATCH 1/3] sparc64: Add compile-time asserts for siginfo_t offsets
@ 2021-04-30 18:11     ` Marco Elver
  0 siblings, 0 replies; 22+ messages in thread
From: Marco Elver @ 2021-04-30 18:11 UTC (permalink / raw)
  To: Eric W. Biederman
  Cc: Russell King - ARM Linux admin, Catalin Marinas, Will Deacon,
	David S. Miller, Mark Rutland, Linux ARM, LKML, sparclinux

On Fri, 30 Apr 2021 at 19:42, Eric W. Biederman <ebiederm@xmission.com> wrote:
>
> Marco Elver <elver@google.com> writes:
>
> > To help catch ABI breaks at compile-time, add compile-time assertions to
> > verify the siginfo_t layout. Unlike other architectures, sparc64 is
> > special, because it is one of few architectures requiring si_trapno.
> > ABI breaks around that field would only be caught here.
>
> Arnd Bergman recently pointed out that we can move si_trapno into the
> union and make it specific to a handful of signals.  Like we do other
> items in the union.
>
> Given that the code of perf_sigtrap is pretty much broken if si_trapno
> needs to be filled out.  I think we should make that change before
> we set this ABI in stone like this.
>
> Otherwise this looks good.

Thanks, that's reasonable -- I'll reply to the other thread in a few minutes.

-- Marco

> Eric
>
> > Link: https://lkml.kernel.org/r/m11rat9f85.fsf@fess.ebiederm.org
> > Suggested-by: Eric W. Biederman <ebiederm@xmission.com>
> > Signed-off-by: Marco Elver <elver@google.com>
> > ---
> >  arch/sparc/kernel/signal32.c  | 34 ++++++++++++++++++++++++++++++++++
> >  arch/sparc/kernel/signal_64.c | 33 +++++++++++++++++++++++++++++++++
> >  2 files changed, 67 insertions(+)
> >
> > diff --git a/arch/sparc/kernel/signal32.c b/arch/sparc/kernel/signal32.c
> > index e9695a06492f..778ed5c26d4a 100644
> > --- a/arch/sparc/kernel/signal32.c
> > +++ b/arch/sparc/kernel/signal32.c
> > @@ -745,3 +745,37 @@ asmlinkage int do_sys32_sigstack(u32 u_ssptr, u32 u_ossptr, unsigned long sp)
> >  out:
> >       return ret;
> >  }
> > +
> > +/*
> > + * 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_trapno)  == 0x10);
> > +static_assert(offsetof(compat_siginfo_t, si_addr_lsb)        == 0x14);
> > +static_assert(offsetof(compat_siginfo_t, si_lower)   == 0x18);
> > +static_assert(offsetof(compat_siginfo_t, si_upper)   == 0x1c);
> > +static_assert(offsetof(compat_siginfo_t, si_pkey)    == 0x18);
> > +static_assert(offsetof(compat_siginfo_t, si_perf)    == 0x14);
> > +static_assert(offsetof(compat_siginfo_t, si_band)    == 0x0c);
> > +static_assert(offsetof(compat_siginfo_t, si_fd)              == 0x10);
> > diff --git a/arch/sparc/kernel/signal_64.c b/arch/sparc/kernel/signal_64.c
> > index a0eec62c825d..c9bbf5f29078 100644
> > --- a/arch/sparc/kernel/signal_64.c
> > +++ b/arch/sparc/kernel/signal_64.c
> > @@ -556,3 +556,36 @@ void do_notify_resume(struct pt_regs *regs, unsigned long orig_i0, unsigned long
> >       user_enter();
> >  }
> >
> > +/*
> > + * 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_trapno) == 0x18);
> > +static_assert(offsetof(siginfo_t, si_addr_lsb)       == 0x20);
> > +static_assert(offsetof(siginfo_t, si_lower)  == 0x28);
> > +static_assert(offsetof(siginfo_t, si_upper)  == 0x30);
> > +static_assert(offsetof(siginfo_t, si_pkey)   == 0x28);
> > +static_assert(offsetof(siginfo_t, si_perf)   == 0x20);
> > +static_assert(offsetof(siginfo_t, si_band)   == 0x10);
> > +static_assert(offsetof(siginfo_t, si_fd)     == 0x14);

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* Re: [PATCH 1/3] sparc64: Add compile-time asserts for siginfo_t offsets
  2021-04-29 19:07 ` Marco Elver
@ 2021-04-30 22:22   ` David Miller
  -1 siblings, 0 replies; 22+ messages in thread
From: David Miller @ 2021-04-30 22:22 UTC (permalink / raw)
  To: elver
  Cc: ebiederm, linux, catalin.marinas, will, mark.rutland,
	linux-arm-kernel, linux-kernel, sparclinux

From: Marco Elver <elver@google.com>
Date: Thu, 29 Apr 2021 21:07:32 +0200

> To help catch ABI breaks at compile-time, add compile-time assertions to
> verify the siginfo_t layout. Unlike other architectures, sparc64 is
> special, because it is one of few architectures requiring si_trapno.
> ABI breaks around that field would only be caught here.
> 
> Link: https://lkml.kernel.org/r/m11rat9f85.fsf@fess.ebiederm.org
> Suggested-by: Eric W. Biederman <ebiederm@xmission.com>
> Signed-off-by: Marco Elver <elver@google.com>

Acked-by: David S. Miller <davem@davemloft.net>

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

* Re: [PATCH 1/3] sparc64: Add compile-time asserts for siginfo_t offsets
@ 2021-04-30 22:22   ` David Miller
  0 siblings, 0 replies; 22+ messages in thread
From: David Miller @ 2021-04-30 22:22 UTC (permalink / raw)
  To: elver
  Cc: ebiederm, linux, catalin.marinas, will, mark.rutland,
	linux-arm-kernel, linux-kernel, sparclinux

From: Marco Elver <elver@google.com>
Date: Thu, 29 Apr 2021 21:07:32 +0200

> To help catch ABI breaks at compile-time, add compile-time assertions to
> verify the siginfo_t layout. Unlike other architectures, sparc64 is
> special, because it is one of few architectures requiring si_trapno.
> ABI breaks around that field would only be caught here.
> 
> Link: https://lkml.kernel.org/r/m11rat9f85.fsf@fess.ebiederm.org
> Suggested-by: Eric W. Biederman <ebiederm@xmission.com>
> Signed-off-by: Marco Elver <elver@google.com>

Acked-by: David S. Miller <davem@davemloft.net>

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* Re: [PATCH 3/3] arm64: Add compile-time asserts for siginfo_t offsets
  2021-04-29 19:07   ` Marco Elver
@ 2021-05-26 17:42     ` Will Deacon
  -1 siblings, 0 replies; 22+ messages in thread
From: Will Deacon @ 2021-05-26 17:42 UTC (permalink / raw)
  To: Marco Elver
  Cc: ebiederm, linux, catalin.marinas, davem, mark.rutland,
	linux-arm-kernel, linux-kernel, sparclinux

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

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

* Re: [PATCH 3/3] arm64: Add compile-time asserts for siginfo_t offsets
@ 2021-05-26 17:42     ` Will Deacon
  0 siblings, 0 replies; 22+ messages in thread
From: Will Deacon @ 2021-05-26 17:42 UTC (permalink / raw)
  To: Marco Elver
  Cc: ebiederm, linux, catalin.marinas, davem, mark.rutland,
	linux-arm-kernel, linux-kernel, sparclinux

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

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* Re: [PATCH 3/3] arm64: Add compile-time asserts for siginfo_t offsets
  2021-05-26 17:42     ` Will Deacon
@ 2021-05-26 17:50       ` Marco Elver
  -1 siblings, 0 replies; 22+ messages in thread
From: Marco Elver @ 2021-05-26 17:50 UTC (permalink / raw)
  To: Will Deacon
  Cc: Eric W. Biederman, Russell King - ARM Linux admin,
	Catalin Marinas, David S. Miller, Mark Rutland, Linux ARM, LKML,
	sparclinux

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

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

* Re: [PATCH 3/3] arm64: Add compile-time asserts for siginfo_t offsets
@ 2021-05-26 17:50       ` Marco Elver
  0 siblings, 0 replies; 22+ messages in thread
From: Marco Elver @ 2021-05-26 17:50 UTC (permalink / raw)
  To: Will Deacon
  Cc: Eric W. Biederman, Russell King - ARM Linux admin,
	Catalin Marinas, David S. Miller, Mark Rutland, Linux ARM, LKML,
	sparclinux

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

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* Re: [PATCH 3/3] arm64: Add compile-time asserts for siginfo_t offsets
  2021-05-26 17:50       ` Marco Elver
@ 2021-05-26 18:29         ` Will Deacon
  -1 siblings, 0 replies; 22+ messages in thread
From: Will Deacon @ 2021-05-26 18:29 UTC (permalink / raw)
  To: Marco Elver
  Cc: Eric W. Biederman, Russell King - ARM Linux admin,
	Catalin Marinas, David S. Miller, Mark Rutland, Linux ARM, LKML,
	sparclinux

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

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

* Re: [PATCH 3/3] arm64: Add compile-time asserts for siginfo_t offsets
@ 2021-05-26 18:29         ` Will Deacon
  0 siblings, 0 replies; 22+ messages in thread
From: Will Deacon @ 2021-05-26 18:29 UTC (permalink / raw)
  To: Marco Elver
  Cc: Eric W. Biederman, Russell King - ARM Linux admin,
	Catalin Marinas, David S. Miller, Mark Rutland, Linux ARM, LKML,
	sparclinux

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

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* Re: [PATCH 3/3] arm64: Add compile-time asserts for siginfo_t offsets
  2021-05-26 18:29         ` Will Deacon
@ 2021-07-02  8:51           ` Marco Elver
  -1 siblings, 0 replies; 22+ messages in thread
From: Marco Elver @ 2021-07-02  8:51 UTC (permalink / raw)
  To: Eric W. Biederman
  Cc: Russell King - ARM Linux admin, Will Deacon, Catalin Marinas,
	David S. Miller, Mark Rutland, Linux ARM, LKML, sparclinux

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

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

* Re: [PATCH 3/3] arm64: Add compile-time asserts for siginfo_t offsets
@ 2021-07-02  8:51           ` Marco Elver
  0 siblings, 0 replies; 22+ messages in thread
From: Marco Elver @ 2021-07-02  8:51 UTC (permalink / raw)
  To: Eric W. Biederman
  Cc: Russell King - ARM Linux admin, Will Deacon, Catalin Marinas,
	David S. Miller, Mark Rutland, Linux ARM, LKML, sparclinux

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

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* Re: [PATCH 3/3] arm64: Add compile-time asserts for siginfo_t offsets
  2021-07-02  8:51           ` Marco Elver
@ 2021-07-12 10:38             ` Marco Elver
  -1 siblings, 0 replies; 22+ messages in thread
From: Marco Elver @ 2021-07-12 10:38 UTC (permalink / raw)
  To: Eric W. Biederman
  Cc: Russell King - ARM Linux admin, Will Deacon, Catalin Marinas,
	David S. Miller, Mark Rutland, Linux ARM, LKML, sparclinux

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

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

* Re: [PATCH 3/3] arm64: Add compile-time asserts for siginfo_t offsets
@ 2021-07-12 10:38             ` Marco Elver
  0 siblings, 0 replies; 22+ messages in thread
From: Marco Elver @ 2021-07-12 10:38 UTC (permalink / raw)
  To: Eric W. Biederman
  Cc: Russell King - ARM Linux admin, Will Deacon, Catalin Marinas,
	David S. Miller, Mark Rutland, Linux ARM, LKML, sparclinux

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

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

end of thread, other threads:[~2021-07-12 10:40 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-29 19:07 [PATCH 1/3] sparc64: Add compile-time asserts for siginfo_t offsets Marco Elver
2021-04-29 19:07 ` Marco Elver
2021-04-29 19:07 ` [PATCH 2/3] arm: " Marco Elver
2021-04-29 19:07   ` Marco Elver
2021-04-29 19:07 ` [PATCH 3/3] arm64: " Marco Elver
2021-04-29 19:07   ` Marco Elver
2021-05-26 17:42   ` Will Deacon
2021-05-26 17:42     ` Will Deacon
2021-05-26 17:50     ` Marco Elver
2021-05-26 17:50       ` Marco Elver
2021-05-26 18:29       ` Will Deacon
2021-05-26 18:29         ` Will Deacon
2021-07-02  8:51         ` Marco Elver
2021-07-02  8:51           ` Marco Elver
2021-07-12 10:38           ` Marco Elver
2021-07-12 10:38             ` Marco Elver
2021-04-30 17:42 ` [PATCH 1/3] sparc64: " Eric W. Biederman
2021-04-30 17:42   ` Eric W. Biederman
2021-04-30 18:11   ` Marco Elver
2021-04-30 18:11     ` Marco Elver
2021-04-30 22:22 ` David Miller
2021-04-30 22:22   ` David Miller

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.