[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20230829182500.61875-1-namcaov@gmail.com>
Date: Tue, 29 Aug 2023 20:25:00 +0200
From: Nam Cao <namcaov@...il.com>
To: Paul Walmsley <paul.walmsley@...ive.com>,
Palmer Dabbelt <palmer@...belt.com>,
Albert Ou <aou@...s.berkeley.edu>,
linux-riscv@...ts.infradead.org, linux-kernel@...r.kernel.org
Cc: guoren@...nel.org, Nam Cao <namcaov@...il.com>,
stable@...r.kernel.org
Subject: [PATCH] riscv: kprobes: allow writing to x0
Instructions can write to x0, so we should simulate these instructions
normally.
Currently, the kernel hangs if an instruction who writes to x0 is
simulated.
Fixes: c22b0bcb1dd0 ("riscv: Add kprobes supported")
Cc: stable@...r.kernel.org
Signed-off-by: Nam Cao <namcaov@...il.com>
---
arch/riscv/kernel/probes/simulate-insn.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/riscv/kernel/probes/simulate-insn.c b/arch/riscv/kernel/probes/simulate-insn.c
index d3099d67816d..6c166029079c 100644
--- a/arch/riscv/kernel/probes/simulate-insn.c
+++ b/arch/riscv/kernel/probes/simulate-insn.c
@@ -24,7 +24,7 @@ static inline bool rv_insn_reg_set_val(struct pt_regs *regs, u32 index,
unsigned long val)
{
if (index == 0)
- return false;
+ return true;
else if (index <= 31)
*((unsigned long *)regs + index) = val;
else
--
2.34.1
Powered by blists - more mailing lists