]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
powerpc/64: Bump SIGSTKSZ and MINSIGSTKSZ
authorNicholas Piggin <npiggin@gmail.com>
Mon, 7 Mar 2022 18:27:33 +0000 (04:27 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 19 May 2022 13:11:26 +0000 (23:11 +1000)
The sad tale of SIGSTKSZ and MINSIGSTKSZ is documented in glibc.git
commit f7c399cff5bd ("PowerPC SIGSTKSZ"), which explains why glibc
does not use the kernel defines for these constants.

Since then in fact there has been a further expansion of the signal
stack frame size on little-endian with linux commit
573ebfa6601f ("powerpc: Increase stack redzone for 64-bit userspace to
512 bytes"), which has caused it to exceed even the glibc defines.

See kernel commit 63dee5df43a3 ("powerpc: Allow 4224 bytes of stack
expansion for the signal frame") for more details of the history of the
expansion.

Increase MINSIGSTKSZ to 8192 which is double the current glibc value and
fits the current stack frame with room to grow. SIGSTKSZ is set to 4x
the minimum as convention.

glibc will have to be updated as well.

Reviewed-by: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20220307182734.289289-1-npiggin@gmail.com
arch/powerpc/include/uapi/asm/signal.h

index 37d41d87c45bffacaaebc61ee497015e9417a322..a5dfe84f50ab6168360b80442c36fd7c7d68e876 100644 (file)
@@ -62,8 +62,13 @@ typedef struct {
 
 #define SA_RESTORER    0x04000000U
 
+#ifdef __powerpc64__
+#define MINSIGSTKSZ    8192
+#define SIGSTKSZ       32768
+#else
 #define MINSIGSTKSZ    2048
 #define SIGSTKSZ       8192
+#endif
 
 #include <asm-generic/signal-defs.h>