[PATCH v16 1/6] parisc: Drop parisc special case for __sighandler_t
Peter Collingbourne
pcc at google.com
Thu Nov 12 21:53:31 EST 2020
From: Helge Deller <deller at gmx.de>
I believe we can and *should* drop this parisc-specific typedef for
__sighandler_t when compiling a 64-bit kernel. The reasons:
1. We don't have a 64-bit userspace yet, so nothing (on userspace side)
can break.
2. Inside the Linux kernel, this is only used in kernel/signal.c, in
function kernel_sigaction() where the signal handler is compared against
SIG_IGN. SIG_IGN is defined as (__sighandler_t)1), so only the pointers
are compared.
3. Even when a 64-bit userspace gets added at some point, I think
__sighandler_t should be defined what it is: a function pointer struct.
I compiled kernel/signal.c with and without the patch, and the produced code
is identical in both cases.
Signed-off-by: Helge Deller <deller at gmx.de>
Signed-off-by: Peter Collingbourne <pcc at google.com>
Acked-by: "Eric W. Biederman" <ebiederm at xmission.com>
Reviewed-by: Peter Collingbourne <pcc at google.com>
Link: https://linux-review.googlesource.com/id/I21c43f21b264f339e3aa395626af838646f62d97
---
arch/parisc/include/uapi/asm/signal.h | 8 --------
1 file changed, 8 deletions(-)
diff --git a/arch/parisc/include/uapi/asm/signal.h b/arch/parisc/include/uapi/asm/signal.h
index e605197b462c..d9c51769851a 100644
--- a/arch/parisc/include/uapi/asm/signal.h
+++ b/arch/parisc/include/uapi/asm/signal.h
@@ -85,16 +85,8 @@
struct siginfo;
/* Type of a signal handler. */
-#if defined(__LP64__)
-/* function pointers on 64-bit parisc are pointers to little structs and the
- * compiler doesn't support code which changes or tests the address of
- * the function in the little struct. This is really ugly -PB
- */
-typedef char __user *__sighandler_t;
-#else
typedef void __signalfn_t(int);
typedef __signalfn_t __user *__sighandler_t;
-#endif
typedef struct sigaltstack {
void __user *ss_sp;
--
2.29.2.299.gdc1121823c-goog
More information about the linux-arm-kernel
mailing list