* [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.