aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/stacktrace.c
diff options
context:
space:
mode:
authorMaxime Ripard <maxime@cerno.tech>2020-04-14 09:19:50 +0200
committerMaxime Ripard <maxime@cerno.tech>2020-04-14 09:19:50 +0200
commita4721ced760684d1776bf31f7925aa41bb3f4846 (patch)
treea76e23b60ecceed68b5fa4904f677fe20e304b6e /arch/x86/kernel/stacktrace.c
parentdrm/bridge: analogix_dp: Split bind() into probe() and real bind() (diff)
parentLinux 5.7-rc1 (diff)
Merge v5.7-rc1 into drm-misc-fixes
Start the new drm-misc-fixes cycle. Signed-off-by: Maxime Ripard <maxime@cerno.tech>
Diffstat (limited to 'arch/x86/kernel/stacktrace.c')
-rw-r--r--arch/x86/kernel/stacktrace.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/x86/kernel/stacktrace.c b/arch/x86/kernel/stacktrace.c
index 2d6898c2cb64..6ad43fc44556 100644
--- a/arch/x86/kernel/stacktrace.c
+++ b/arch/x86/kernel/stacktrace.c
@@ -96,7 +96,8 @@ struct stack_frame_user {
};
static int
-copy_stack_frame(const void __user *fp, struct stack_frame_user *frame)
+copy_stack_frame(const struct stack_frame_user __user *fp,
+ struct stack_frame_user *frame)
{
int ret;
@@ -105,7 +106,8 @@ copy_stack_frame(const void __user *fp, struct stack_frame_user *frame)
ret = 1;
pagefault_disable();
- if (__copy_from_user_inatomic(frame, fp, sizeof(*frame)))
+ if (__get_user(frame->next_fp, &fp->next_fp) ||
+ __get_user(frame->ret_addr, &fp->ret_addr))
ret = 0;
pagefault_enable();