From 5ec08ba218d4d583269a188593966054fe6d1597 Mon Sep 17 00:00:00 2001 From: Will Drewry <wad@chromium.org> Date: Fri, 27 Apr 2012 12:19:46 -0500 Subject: [PATCH] CHROMIUM: ARM: r1->r0 for get/set arguments ARM reuses r0 as the first argument. This fixes the mistaken assumption in the original patchset. These will be merged into one change when sent upstream. Signed-off-by: Will Drewry <wad@chromium.org> TEST=emerge tegra2_kaen; run seccomp testsuite BUG=chromium-os:27878 Change-Id: Iaaa09995d35f78ee8cef7b600d526e71f3b2fcec Reviewed-on: https://gerrit.chromium.org/gerrit/21342 Reviewed-by: Kees Cook <keescook@chromium.org> Reviewed-by: Will Drewry <wad@chromium.org> Tested-by: Will Drewry <wad@chromium.org> Signed-off-by: Sasha Levitskiy <sanek@google.com> --- arch/arm/include/asm/syscall.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm/include/asm/syscall.h b/arch/arm/include/asm/syscall.h index 2834036be6cf..4c123dbe281e 100644 --- a/arch/arm/include/asm/syscall.h +++ b/arch/arm/include/asm/syscall.h @@ -55,7 +55,7 @@ static inline void syscall_get_arguments(struct task_struct *task, unsigned long *args) { BUG_ON(i + n > 6); - memcpy(args, ®s->ARM_r1 + i, n * sizeof(args[0])); + memcpy(args, ®s->ARM_r0 + i, n * sizeof(args[0])); } static inline void syscall_set_arguments(struct task_struct *task, @@ -64,7 +64,7 @@ static inline void syscall_set_arguments(struct task_struct *task, const unsigned long *args) { BUG_ON(i + n > 6); - memcpy(®s->ARM_r1 + i, args, n * sizeof(args[0])); + memcpy(®s->ARM_r0 + i, args, n * sizeof(args[0])); } static inline int syscall_get_arch(struct task_struct *task, -- GitLab