summaryrefslogtreecommitdiffstats
path: root/arch/parisc/kernel/unwind.c
diff options
context:
space:
mode:
authorSven Schnelle <svens@stackframe.org>2021-09-30 19:26:03 +0200
committerHelge Deller <deller@gmx.de>2021-10-30 23:11:00 +0200
commitcf2ec7893f876f4c30aed8a76bb4ebacdce74dd3 (patch)
tree89d77b8af1ce9c037a54793bba0a6611f7b0ddcd /arch/parisc/kernel/unwind.c
parentMerge tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/... (diff)
downloadlinux-cf2ec7893f876f4c30aed8a76bb4ebacdce74dd3.tar.xz
linux-cf2ec7893f876f4c30aed8a76bb4ebacdce74dd3.zip
parisc/unwind: use copy_from_kernel_nofault()
I have no idea why get_user() is used there, but we're unwinding the kernel stack, so we should use copy_from_kernel_nofault(). Signed-off-by: Sven Schnelle <svens@stackframe.org> Signed-off-by: Helge Deller <deller@gmx.de>
Diffstat (limited to '')
-rw-r--r--arch/parisc/kernel/unwind.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/parisc/kernel/unwind.c b/arch/parisc/kernel/unwind.c
index 87ae476d1c4f..889d5889203a 100644
--- a/arch/parisc/kernel/unwind.c
+++ b/arch/parisc/kernel/unwind.c
@@ -302,7 +302,8 @@ static void unwind_frame_regs(struct unwind_frame_info *info)
break;
}
- if (get_user(tmp, (unsigned long *)(info->prev_sp - RP_OFFSET)))
+ if (copy_from_kernel_nofault(&tmp,
+ (void *)info->prev_sp - RP_OFFSET, sizeof(tmp)))
break;
info->prev_ip = tmp;
sp = info->prev_sp;