[PATCH 3/3] linux-user: riscv: Fix signal frame user mapping

Nicholas Piggin posted 3 patches 1 day, 13 hours ago
Maintainers: Warner Losh <imp@bsdimp.com>, Kyle Evans <kevans@freebsd.org>, Laurent Vivier <laurent@vivier.eu>, Pierrick Bouvier <pierrick.bouvier@linaro.org>
[PATCH 3/3] linux-user: riscv: Fix signal frame user mapping
Posted by Nicholas Piggin 1 day, 13 hours ago
riscv signal frame setup is missing unlock_user_struct().

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
---
 linux-user/riscv/signal.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/linux-user/riscv/signal.c b/linux-user/riscv/signal.c
index 358fa1d82d..22b1b8149f 100644
--- a/linux-user/riscv/signal.c
+++ b/linux-user/riscv/signal.c
@@ -126,6 +126,7 @@ void setup_rt_frame(int sig, struct target_sigaction *ka,
 
     setup_ucontext(&frame->uc, env, set);
     frame->info = *info;
+    unlock_user_struct(frame, frame_addr, 1);
 
     env->pc = ka->_sa_handler;
     env->gpr[xSP] = frame_addr;
-- 
2.51.0
Re: [PATCH 3/3] linux-user: riscv: Fix signal frame user mapping
Posted by Chao Liu 7 hours ago
On Sat, Mar 21, 2026 at 10:48:36AM +1000, Nicholas Piggin wrote:
> riscv signal frame setup is missing unlock_user_struct().
> 
> Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Reviewed-by: Chao Liu <chao.liu.zevorn@gmail.com>

Thanks,
Chao
> ---
>  linux-user/riscv/signal.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/linux-user/riscv/signal.c b/linux-user/riscv/signal.c
> index 358fa1d82d..22b1b8149f 100644
> --- a/linux-user/riscv/signal.c
> +++ b/linux-user/riscv/signal.c
> @@ -126,6 +126,7 @@ void setup_rt_frame(int sig, struct target_sigaction *ka,
>  
>      setup_ucontext(&frame->uc, env, set);
>      frame->info = *info;
> +    unlock_user_struct(frame, frame_addr, 1);
>  
>      env->pc = ka->_sa_handler;
>      env->gpr[xSP] = frame_addr;
> -- 
> 2.51.0
> 
>