diff options
Diffstat (limited to 'arch/riscv/kernel/signal.c')
| -rw-r--r-- | arch/riscv/kernel/signal.c | 7 | 
1 files changed, 6 insertions, 1 deletions
| diff --git a/arch/riscv/kernel/signal.c b/arch/riscv/kernel/signal.c index 9f4e59f80551..38b05ca6fe66 100644 --- a/arch/riscv/kernel/signal.c +++ b/arch/riscv/kernel/signal.c @@ -6,6 +6,7 @@   * Copyright (C) 2012 Regents of the University of California   */ +#include <linux/compat.h>  #include <linux/signal.h>  #include <linux/uaccess.h>  #include <linux/syscalls.h> @@ -14,6 +15,7 @@  #include <asm/ucontext.h>  #include <asm/vdso.h> +#include <asm/signal32.h>  #include <asm/switch_to.h>  #include <asm/csr.h> @@ -261,7 +263,10 @@ static void handle_signal(struct ksignal *ksig, struct pt_regs *regs)  	rseq_signal_deliver(ksig, regs);  	/* Set up the stack frame */ -	ret = setup_rt_frame(ksig, oldset, regs); +	if (is_compat_task()) +		ret = compat_setup_rt_frame(ksig, oldset, regs); +	else +		ret = setup_rt_frame(ksig, oldset, regs);  	signal_setup_done(ret, ksig, 0);  } | 
