Re: [PATCH v3] LoongArch: Fixup do_ri csr_era

From: Jun Yi
Date: Mon Sep 26 2022 - 23:13:33 EST


do_ri is porting from mips, mipsr6 use do_ri to emulate some fp instructions, but Loongarch do not need to emulate these instructions.

And the regs->csr_era be always recovered to ths old_era = regs->csr_era, so the compute_return_era is useless.

On 9/27/22 07:41, Guo Ren wrote:
On Mon, Sep 26, 2022 at 8:27 PM Jun Yi <yijun@xxxxxxxxxxx> wrote:

csr_era of pt_regs in do_ri should not add 4 to point to the
next instruction.
The comment does not make sense. I think it wants to skip some
instructions, but your patch broke that.


Signed-off-by: Jun Yi <yijun@xxxxxxxxxxx>
---
arch/loongarch/kernel/traps.c | 2 --
1 file changed, 2 deletions(-)

diff --git a/arch/loongarch/kernel/traps.c b/arch/loongarch/kernel/traps.c
index aa1c95aaf595..ec888eda3d45 100644
--- a/arch/loongarch/kernel/traps.c
+++ b/arch/loongarch/kernel/traps.c
@@ -477,8 +477,6 @@ asmlinkage void noinstr do_ri(struct pt_regs *regs)

die_if_kernel("Reserved instruction in kernel code", regs);

- compute_return_era(regs);
-
if (unlikely(get_user(opcode, era) < 0)) {
status = SIGSEGV;
current->thread.error_code = 1;
--
2.31.1