summaryrefslogtreecommitdiff
path: root/arch/x86/kernel/stacktrace.c
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2020-03-28 11:57:02 +0100
committerThomas Gleixner <tglx@linutronix.de>2020-03-28 11:57:02 +0100
commita2150327250efa866c412caee84aaf05ebff9a8f (patch)
tree2eb16c56cb456104c0f14a4ed9118d52635358a8 /arch/x86/kernel/stacktrace.c
parent5bacdc0982f2b343afa5adbb80517d3392a7e357 (diff)
parentcf122cfba5b1d9daf64009d143f51dfec4b1705a (diff)
Merge branch 'next.uaccess-2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs into x86/cleanups
Pull uaccess cleanups from Al Viro: Consolidate the user access areas and get rid of uaccess_try(), user_ex() and other warts.
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();