Merge tag 'for-5.15/parisc' of git://git.kernel.org/pub/scm/linux/kernel/git/deller...
[linux-2.6-microblaze.git] / arch / parisc / kernel / signal.c
index fb1e94a..db1a47c 100644 (file)
@@ -237,6 +237,12 @@ setup_rt_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs,
 #endif
        
        usp = (regs->gr[30] & ~(0x01UL));
+#ifdef CONFIG_64BIT
+       if (is_compat_task()) {
+               /* The gcc alloca implementation leaves garbage in the upper 32 bits of sp */
+               usp = (compat_uint_t)usp;
+       }
+#endif
        /*FIXME: frame_size parameter is unused, remove it. */
        frame = get_sigframe(&ksig->ka, usp, sizeof(*frame));