--- /dev/null
+From 14a270bfab7ab1c4b605c01eeca5557447ad5a2b Mon Sep 17 00:00:00 2001
+From: Andy Chiu <andy.chiu@sifive.com>
+Date: Tue, 22 Aug 2023 16:49:03 +0000
+Subject: riscv: signal: fix sigaltstack frame size checking
+
+From: Andy Chiu <andy.chiu@sifive.com>
+
+commit 14a270bfab7ab1c4b605c01eeca5557447ad5a2b upstream.
+
+The alternative stack checking in get_sigframe introduced by the Vector
+support is not needed and has a problem. It is not needed as we have
+already validate it at the beginning of the function if we are already
+on an altstack. If not, the size of an altstack is always validated at
+its allocation stage with sigaltstack_size_valid().
+
+Besides, we must only regard the size of an altstack if the handler of a
+signal is registered with SA_ONSTACK. So, blindly checking overflow of
+an altstack if sas_ss_size not equals to zero will check against wrong
+signal handlers if only a subset of signals are registered with
+SA_ONSTACK.
+
+Fixes: 8ee0b41898fa ("riscv: signal: Add sigcontext save/restore for vector")
+Reported-by: Prashanth Swaminathan <prashanthsw@google.com>
+Signed-off-by: Andy Chiu <andy.chiu@sifive.com>
+Link: https://lore.kernel.org/r/20230822164904.21660-1-andy.chiu@sifive.com
+Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ arch/riscv/kernel/signal.c | 7 -------
+ 1 file changed, 7 deletions(-)
+
+--- a/arch/riscv/kernel/signal.c
++++ b/arch/riscv/kernel/signal.c
+@@ -311,13 +311,6 @@ static inline void __user *get_sigframe(
+ /* Align the stack frame. */
+ sp &= ~0xfUL;
+
+- /*
+- * Fail if the size of the altstack is not large enough for the
+- * sigframe construction.
+- */
+- if (current->sas_ss_size && sp < current->sas_ss_sp)
+- return (void __user __force *)-1UL;
+-
+ return (void __user *)sp;
+ }
+