[PATCH v2 06/13] RISC-V: kprobes: use central defined funct3 constants

Conor Dooley conor at kernel.org
Tue Nov 29 15:22:10 PST 2022


On Mon, Nov 28, 2022 at 11:26:25AM +0100, Heiko Stuebner wrote:
> From: Heiko Stuebner <heiko.stuebner at vrull.eu>
> 
> Don't redefine values that are already available in a central header.

Which central header?
Being intentionally dense, but it'd be nice to mention it since it's not
in the diffstat?

> Use the central ones instead.
> 
> Signed-off-by: Heiko Stuebner <heiko.stuebner at vrull.eu>
> ---
>  arch/riscv/kernel/probes/simulate-insn.c | 19 ++++++-------------
>  1 file changed, 6 insertions(+), 13 deletions(-)
> 
> diff --git a/arch/riscv/kernel/probes/simulate-insn.c b/arch/riscv/kernel/probes/simulate-insn.c
> index d73e96f6ed7c..330afe9331a8 100644
> --- a/arch/riscv/kernel/probes/simulate-insn.c
> +++ b/arch/riscv/kernel/probes/simulate-insn.c
> @@ -136,13 +136,6 @@ bool __kprobes simulate_auipc(u32 opcode, unsigned long addr, struct pt_regs *re
>  #define branch_offset(opcode) \
>  	sign_extend32((branch_imm(opcode)), 12)
>  
> -#define BRANCH_BEQ	0x0
> -#define BRANCH_BNE	0x1
> -#define BRANCH_BLT	0x4
> -#define BRANCH_BGE	0x5
> -#define BRANCH_BLTU	0x6
> -#define BRANCH_BGEU	0x7
> -
>  bool __kprobes simulate_branch(u32 opcode, unsigned long addr, struct pt_regs *regs)
>  {
>  	/*
> @@ -169,22 +162,22 @@ bool __kprobes simulate_branch(u32 opcode, unsigned long addr, struct pt_regs *r
>  
>  	offset_tmp = branch_offset(opcode);
>  	switch (branch_funct3(opcode)) {
> -	case BRANCH_BEQ:
> +	case RVG_FUNCT3_BEQ:
>  		offset = (rs1_val == rs2_val) ? offset_tmp : 4;
>  		break;
> -	case BRANCH_BNE:
> +	case RVG_FUNCT3_BNE:
>  		offset = (rs1_val != rs2_val) ? offset_tmp : 4;
>  		break;
> -	case BRANCH_BLT:
> +	case RVG_FUNCT3_BLT:
>  		offset = ((long)rs1_val < (long)rs2_val) ? offset_tmp : 4;
>  		break;
> -	case BRANCH_BGE:
> +	case RVG_FUNCT3_BGE:
>  		offset = ((long)rs1_val >= (long)rs2_val) ? offset_tmp : 4;
>  		break;
> -	case BRANCH_BLTU:
> +	case RVG_FUNCT3_BLTU:
>  		offset = (rs1_val < rs2_val) ? offset_tmp : 4;
>  		break;
> -	case BRANCH_BGEU:
> +	case RVG_FUNCT3_BGEU:
>  		offset = (rs1_val >= rs2_val) ? offset_tmp : 4;
>  		break;
>  	default:

Still suffering from the carried-in build issues, but this change also
looks grand in isolation?

Reviewed-by: Conor Dooley <conor.dooley at microchip.com>





More information about the linux-riscv mailing list