Hi menglong, On Mon, Jan 11, 2021 at 10:25 PM <menglong8.dong@xxxxxxxxx> wrote: > > From: Menglong Dong <dong.menglong@xxxxxxxxxx> > > The type of 'val' is 'unsigned long' in simulate_blz32, so 'val < 0' > can't be true. > > When 'csky_insn_reg_get_val' fails, 'false' will be returned. We > can directly use its return value here. > > Fixes: 33e53ae1ce41 ("csky: Add kprobes supported") > Signed-off-by: Menglong Dong <dong.menglong@xxxxxxxxxx> > --- > arch/csky/kernel/probes/simulate-insn.c | 4 +--- > 1 file changed, 1 insertion(+), 3 deletions(-) > > diff --git a/arch/csky/kernel/probes/simulate-insn.c b/arch/csky/kernel/probes/simulate-insn.c > index 4e464fed52ec..b09ddcbcfa18 100644 > --- a/arch/csky/kernel/probes/simulate-insn.c > +++ b/arch/csky/kernel/probes/simulate-insn.c > @@ -346,9 +346,7 @@ simulate_blz32(u32 opcode, long addr, struct pt_regs *regs) > unsigned long tmp = opcode & 0x1f; > unsigned long val; > > - csky_insn_reg_get_val(regs, tmp, &val); > - > - if (val < 0) { if ((long) val < 0) { ? We need val to determine branch taken or not. > + if (!csky_insn_reg_get_val(regs, tmp, &val)) { > instruction_pointer_set(regs, > addr + sign_extend32((opcode & 0xffff0000) >> 15, 15)); > } else > -- > 2.17.1 > -- Best Regards Guo Ren ML: https://lore.kernel.org/linux-csky/