Messages in this thread | | | Date | Mon, 24 Apr 2023 17:28:41 +0200 | From | Oleg Nesterov <> | Subject | Re: [PATCH] riscv: uprobes: Restore thread.bad_cause |
| |
On 04/24, Tiezhu Yang wrote: > > >diff --git a/arch/riscv/kernel/probes/uprobes.c b/arch/riscv/kernel/probes/uprobes.c > >index c976a21..194f166 100644 > >--- a/arch/riscv/kernel/probes/uprobes.c > >+++ b/arch/riscv/kernel/probes/uprobes.c > >@@ -67,6 +67,7 @@ int arch_uprobe_post_xol(struct arch_uprobe *auprobe, struct pt_regs *regs) > > struct uprobe_task *utask = current->utask; > > > > WARN_ON_ONCE(current->thread.bad_cause != UPROBE_TRAP_NR); > >+ current->thread.bad_cause = utask->autask.saved_cause; > > > > instruction_pointer_set(regs, utask->vaddr + auprobe->insn_size); > > > >@@ -102,6 +103,7 @@ void arch_uprobe_abort_xol(struct arch_uprobe *auprobe, struct pt_regs *regs) > > { > > struct uprobe_task *utask = current->utask; > > > >+ current->thread.bad_cause = utask->autask.saved_cause; > > /* > > * Task has received a fatal signal, so reset back to probbed > > * address. > >
Acked-by: Oleg Nesterov <oleg@redhat.com>
| |