parisc: Drop parisc special case for __sighandler_t
Helge Deller
maintainerRFC PATCH 1/1 parisc: Drop parisc special case for __sighandler_t
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.
Opinions?
Do I miss something?
If we want to change it, we should do it before this patch gets applied:
https://patchwork.kernel.org/patch/11730893/
arch/parisc/include/uapi/asm/signal.h +0 -8
@@ -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;