Commit 12614f79 authored by Tiezhu Yang's avatar Tiezhu Yang Committed by Huacai Chen
Browse files

LoongArch: uprobes: Remove redundant code about resume_era



arch_uprobe_skip_sstep() returns true if instruction was emulated, that
is to say, there is no need to single step for the emulated instructions.
regs->csr_era will point to the destination address directly after the
exception, so the resume_era related code is redundant, just remove them.

Cc: stable@vger.kernel.org
Fixes: 19bc6cb6 ("LoongArch: Add uprobes support")
Signed-off-by: default avatarTiezhu Yang <yangtiezhu@loongson.cn>
Signed-off-by: default avatarHuacai Chen <chenhuacai@loongson.cn>
parent 0b326b23
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -15,7 +15,6 @@ typedef u32 uprobe_opcode_t;
#define UPROBE_XOLBP_INSN	__emit_break(BRK_UPROBE_XOLBP)

struct arch_uprobe {
	unsigned long	resume_era;
	u32	insn[2];
	u32	ixol[2];
	bool	simulate;
+1 −6
Original line number Diff line number Diff line
@@ -52,10 +52,6 @@ int arch_uprobe_post_xol(struct arch_uprobe *auprobe, struct pt_regs *regs)

	WARN_ON_ONCE(current->thread.trap_nr != UPROBE_TRAP_NR);
	current->thread.trap_nr = utask->autask.saved_trap_nr;

	if (auprobe->simulate)
		instruction_pointer_set(regs, auprobe->resume_era);
	else
	instruction_pointer_set(regs, utask->vaddr + LOONGARCH_INSN_SIZE);

	return 0;
@@ -86,7 +82,6 @@ bool arch_uprobe_skip_sstep(struct arch_uprobe *auprobe, struct pt_regs *regs)

	insn.word = auprobe->insn[0];
	arch_simulate_insn(insn, regs);
	auprobe->resume_era = regs->csr_era;

	return true;
}