Messages in this thread | | | Subject | Re: [PATCH] csky: uprobes: Restore thread.trap_no | From | Tiezhu Yang <> | Date | Mon, 24 Apr 2023 19:47:13 +0800 |
| |
Cc: Oleg Nesterov <oleg@redhat.com> Srikar Dronamraju <srikar@linux.vnet.ibm.com>
On 04/23/2023 09:39 AM, Tiezhu Yang wrote: > thread.trap_no is saved in arch_uprobe_pre_xol(), it should be restored > in arch_uprobe_{post,abort}_xol() accordingly, otherwise the save operation > is meaningless, this change is similar with x86 and powerpc. > > Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn> > --- > arch/csky/kernel/probes/uprobes.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/arch/csky/kernel/probes/uprobes.c b/arch/csky/kernel/probes/uprobes.c > index 2d31a12..6277f2b 100644 > --- a/arch/csky/kernel/probes/uprobes.c > +++ b/arch/csky/kernel/probes/uprobes.c > @@ -64,6 +64,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.trap_no != UPROBE_TRAP_NR); > + current->thread.trap_no = utask->autask.saved_trap_no; > > instruction_pointer_set(regs, utask->vaddr + auprobe->insn_size); > > @@ -101,6 +102,7 @@ void arch_uprobe_abort_xol(struct arch_uprobe *auprobe, struct pt_regs *regs) > { > struct uprobe_task *utask = current->utask; > > + current->thread.trap_no = utask->autask.saved_trap_no; > /* > * Task has received a fatal signal, so reset back to probed > * address. >
Hi Oleg and Srikar,
Could you please review this patch, thank you.
Thanks, Tiezhu
| |