Messages in this thread Patch in this message | | | Date | Mon, 5 Nov 2012 13:29:07 +0000 | From | Will Deacon <> | Subject | Re: [PATCH 1/4] arch/arm: add syscall_get_arch |
| |
On Fri, Nov 02, 2012 at 12:14:57AM +0000, Kees Cook wrote: > From: Will Drewry <wad@chromium.org> > > Provide an ARM implementation of syscall_get_arch. This is a pre-requisite > for CONFIG_HAVE_ARCH_SECCOMP_FILTER. > > Signed-off-by: Will Drewry <wad@chromium.org> > Signed-off-by: Kees Cook <keescook@chromium.org> > --- > arch/arm/include/asm/syscall.h | 13 +++++++++++++ > 1 file changed, 13 insertions(+) > > diff --git a/arch/arm/include/asm/syscall.h b/arch/arm/include/asm/syscall.h > index 9fdded6..803f433 100644 > --- a/arch/arm/include/asm/syscall.h > +++ b/arch/arm/include/asm/syscall.h > @@ -7,6 +7,8 @@ > #ifndef _ASM_ARM_SYSCALL_H > #define _ASM_ARM_SYSCALL_H > > +#include <linux/audit.h> /* for AUDIT_ARCH_* */ > +#include <linux/elf.h> /* for ELF_EM */ > #include <linux/err.h> > #include <linux/sched.h> > > @@ -95,4 +97,15 @@ static inline void syscall_set_arguments(struct task_struct *task, > memcpy(®s->ARM_r0 + i, args, n * sizeof(args[0])); > } > > +static inline int syscall_get_arch(struct task_struct *task, > + struct pt_regs *regs) > +{ > + /* ARM tasks don't change audit architectures on the fly. */ > +#ifdef __ARMEB__ > + return AUDIT_ARCH_ARMEB; > +#else > + return AUDIT_ARCH_ARM; > +#endif > +}
I think you can just use AUDIT_ARCH_ARM unconditionally here as the syscall ABI is not related to the endianness of the CPU. I believe AUDIT_ARCH_ARMEB was added accidentally because somebody incorrectly thought the -EB suffix signified EABI.
If it wasn't in a user-header I'd be all for deleting the old definition...
Will
| |