[PATCH v2 1/2] riscv: signal: fix signal frame size

Yong-Xuan Wang posted 2 patches 12 months ago
[PATCH v2 1/2] riscv: signal: fix signal frame size
Posted by Yong-Xuan Wang 12 months ago
The signal context of certain RISC-V extensions will be appended after
struct __riscv_extra_ext_header, which already includes an empty context
header. Therefore, there is no need to preserve a separate hdr for the
END of signal context.

Fixes: 8ee0b41898fa ("riscv: signal: Add sigcontext save/restore for vector")
Signed-off-by: Yong-Xuan Wang <yongxuan.wang@sifive.com>
Reviewed-by: Zong Li <zong.li@sifive.com>
Reviewed-by: Andy Chiu <AndybnAC@gmail.com>
---
 arch/riscv/kernel/signal.c | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/arch/riscv/kernel/signal.c b/arch/riscv/kernel/signal.c
index dcd282419456..c3c517b9eee5 100644
--- a/arch/riscv/kernel/signal.c
+++ b/arch/riscv/kernel/signal.c
@@ -215,12 +215,6 @@ static size_t get_rt_frame_size(bool cal_all)
 		if (cal_all || riscv_v_vstate_query(task_pt_regs(current)))
 			total_context_size += riscv_v_sc_size;
 	}
-	/*
-	 * Preserved a __riscv_ctx_hdr for END signal context header if an
-	 * extension uses __riscv_extra_ext_header
-	 */
-	if (total_context_size)
-		total_context_size += sizeof(struct __riscv_ctx_hdr);
 
 	frame_size += total_context_size;
 
-- 
2.17.1
Re: [PATCH v2 1/2] riscv: signal: fix signal frame size
Posted by Alexandre Ghiti 11 months, 2 weeks ago
Hi Yong-Xuan,

On 20/12/2024 09:39, Yong-Xuan Wang wrote:
> The signal context of certain RISC-V extensions will be appended after
> struct __riscv_extra_ext_header, which already includes an empty context
> header. Therefore, there is no need to preserve a separate hdr for the
> END of signal context.
>
> Fixes: 8ee0b41898fa ("riscv: signal: Add sigcontext save/restore for vector")
> Signed-off-by: Yong-Xuan Wang <yongxuan.wang@sifive.com>
> Reviewed-by: Zong Li <zong.li@sifive.com>
> Reviewed-by: Andy Chiu <AndybnAC@gmail.com>
> ---
>   arch/riscv/kernel/signal.c | 6 ------
>   1 file changed, 6 deletions(-)
>
> diff --git a/arch/riscv/kernel/signal.c b/arch/riscv/kernel/signal.c
> index dcd282419456..c3c517b9eee5 100644
> --- a/arch/riscv/kernel/signal.c
> +++ b/arch/riscv/kernel/signal.c
> @@ -215,12 +215,6 @@ static size_t get_rt_frame_size(bool cal_all)
>   		if (cal_all || riscv_v_vstate_query(task_pt_regs(current)))
>   			total_context_size += riscv_v_sc_size;
>   	}
> -	/*
> -	 * Preserved a __riscv_ctx_hdr for END signal context header if an
> -	 * extension uses __riscv_extra_ext_header
> -	 */
> -	if (total_context_size)
> -		total_context_size += sizeof(struct __riscv_ctx_hdr);
>   
>   	frame_size += total_context_size;
>   


Reviewed-by: Alexandre Ghiti <alexghiti@rivosinc.com>

Thanks,

Alex