diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2023-07-01 21:12:32 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2023-07-01 21:12:32 -0700 |
commit | 995b406c7e972fab181a4bb57f3b95e59b8e5bf3 (patch) | |
tree | 438258e6d7fadbb73120b1f6e53f11f641d6c2c9 /arch/csky | |
parent | dfab92f27c600fea3cadc6e2cb39f092024e1fef (diff) | |
parent | dd64621a2a97798d5df40028238a703d4324036b (diff) |
Merge tag 'csky-for-linus-6.5' of https://github.com/c-sky/csky-linux
Pull arch/csky update from Guo Ren:
- Correct thread.trap_no restore of uprobe
* tag 'csky-for-linus-6.5' of https://github.com/c-sky/csky-linux:
csky: uprobes: Restore thread.trap_no
Diffstat (limited to 'arch/csky')
-rw-r--r-- | arch/csky/kernel/probes/uprobes.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/csky/kernel/probes/uprobes.c b/arch/csky/kernel/probes/uprobes.c index 2d31a12e46cf..936bea6fd32d 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,8 @@ 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. |