diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2019-05-07 19:06:04 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2019-05-07 19:06:04 -0700 | 
| commit | 02aff8db6438ce29371fd9cd54c57213f4bb4536 (patch) | |
| tree | 283941483dbe579bf413d3a03b0538ff7bdc336d /arch | |
| parent | f72dae20891d7bcc43e9263ab206960b6ae5209f (diff) | |
| parent | 70c4cf17e445264453bc5323db3e50aa0ac9e81f (diff) | |
| download | linux-02aff8db6438ce29371fd9cd54c57213f4bb4536.tar.bz2 | |
Merge tag 'audit-pr-20190507' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit
Pull audit updates from Paul Moore:
 "We've got a reasonably broad set of audit patches for the v5.2 merge
  window, the highlights are below:
   - The biggest change, and the source of all the arch/* changes, is
     the patchset from Dmitry to help enable some of the work he is
     doing around PTRACE_GET_SYSCALL_INFO.
     To be honest, including this in the audit tree is a bit of a
     stretch, but it does help move audit a little further along towards
     proper syscall auditing for all arches, and everyone else seemed to
     agree that audit was a "good" spot for this to land (or maybe they
     just didn't want to merge it? dunno.).
   - We can now audit time/NTP adjustments.
   - We continue the work to connect associated audit records into a
     single event"
* tag 'audit-pr-20190507' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit: (21 commits)
  audit: fix a memory leak bug
  ntp: Audit NTP parameters adjustment
  timekeeping: Audit clock adjustments
  audit: purge unnecessary list_empty calls
  audit: link integrity evm_write_xattrs record to syscall event
  syscall_get_arch: add "struct task_struct *" argument
  unicore32: define syscall_get_arch()
  Move EM_UNICORE to uapi/linux/elf-em.h
  nios2: define syscall_get_arch()
  nds32: define syscall_get_arch()
  Move EM_NDS32 to uapi/linux/elf-em.h
  m68k: define syscall_get_arch()
  hexagon: define syscall_get_arch()
  Move EM_HEXAGON to uapi/linux/elf-em.h
  h8300: define syscall_get_arch()
  c6x: define syscall_get_arch()
  arc: define syscall_get_arch()
  Move EM_ARCOMPACT and EM_ARCV2 to uapi/linux/elf-em.h
  audit: Make audit_log_cap and audit_copy_inode static
  audit: connect LOGIN record to its syscall record
  ...
Diffstat (limited to 'arch')
31 files changed, 112 insertions, 42 deletions
| diff --git a/arch/alpha/include/asm/syscall.h b/arch/alpha/include/asm/syscall.h index d73a6fcb519c..11c688c1d7ec 100644 --- a/arch/alpha/include/asm/syscall.h +++ b/arch/alpha/include/asm/syscall.h @@ -4,7 +4,7 @@  #include <uapi/linux/audit.h> -static inline int syscall_get_arch(void) +static inline int syscall_get_arch(struct task_struct *task)  {  	return AUDIT_ARCH_ALPHA;  } diff --git a/arch/arc/include/asm/elf.h b/arch/arc/include/asm/elf.h index aa2d6da9d187..2b80c184c9c8 100644 --- a/arch/arc/include/asm/elf.h +++ b/arch/arc/include/asm/elf.h @@ -10,13 +10,9 @@  #define __ASM_ARC_ELF_H  #include <linux/types.h> +#include <linux/elf-em.h>  #include <uapi/asm/elf.h> -/* These ELF defines belong to uapi but libc elf.h already defines them */ -#define EM_ARCOMPACT		93 - -#define EM_ARCV2		195	/* ARCv2 Cores */ -  #define EM_ARC_INUSE		(IS_ENABLED(CONFIG_ISA_ARCOMPACT) ? \  					EM_ARCOMPACT : EM_ARCV2) diff --git a/arch/arc/include/asm/syscall.h b/arch/arc/include/asm/syscall.h index c7a4201ed62b..9cac959ca4e8 100644 --- a/arch/arc/include/asm/syscall.h +++ b/arch/arc/include/asm/syscall.h @@ -9,6 +9,7 @@  #ifndef _ASM_ARC_SYSCALL_H  #define _ASM_ARC_SYSCALL_H  1 +#include <uapi/linux/audit.h>  #include <linux/err.h>  #include <linux/sched.h>  #include <asm/unistd.h> @@ -67,4 +68,14 @@ syscall_get_arguments(struct task_struct *task, struct pt_regs *regs,  	}  } +static inline int +syscall_get_arch(struct task_struct *task) +{ +	return IS_ENABLED(CONFIG_ISA_ARCOMPACT) +		? (IS_ENABLED(CONFIG_CPU_BIG_ENDIAN) +			? AUDIT_ARCH_ARCOMPACTBE : AUDIT_ARCH_ARCOMPACT) +		: (IS_ENABLED(CONFIG_CPU_BIG_ENDIAN) +			? AUDIT_ARCH_ARCV2BE : AUDIT_ARCH_ARCV2); +} +  #endif diff --git a/arch/arm/include/asm/syscall.h b/arch/arm/include/asm/syscall.h index 080ce70cab12..fd02761ba06c 100644 --- a/arch/arm/include/asm/syscall.h +++ b/arch/arm/include/asm/syscall.h @@ -73,7 +73,7 @@ static inline void syscall_set_arguments(struct task_struct *task,  	memcpy(®s->ARM_r0 + 1, args, 5 * sizeof(args[0]));  } -static inline int syscall_get_arch(void) +static inline int syscall_get_arch(struct task_struct *task)  {  	/* ARM tasks don't change audit architectures on the fly. */  	return AUDIT_ARCH_ARM; diff --git a/arch/arm64/include/asm/syscall.h b/arch/arm64/include/asm/syscall.h index a179df3674a1..a65167f5cded 100644 --- a/arch/arm64/include/asm/syscall.h +++ b/arch/arm64/include/asm/syscall.h @@ -87,9 +87,9 @@ static inline void syscall_set_arguments(struct task_struct *task,   * We don't care about endianness (__AUDIT_ARCH_LE bit) here because   * AArch64 has the same system calls both on little- and big- endian.   */ -static inline int syscall_get_arch(void) +static inline int syscall_get_arch(struct task_struct *task)  { -	if (is_compat_task()) +	if (is_compat_thread(task_thread_info(task)))  		return AUDIT_ARCH_ARM;  	return AUDIT_ARCH_AARCH64; diff --git a/arch/c6x/include/asm/syscall.h b/arch/c6x/include/asm/syscall.h index 15ba8599858e..5bcdcb651b19 100644 --- a/arch/c6x/include/asm/syscall.h +++ b/arch/c6x/include/asm/syscall.h @@ -11,6 +11,7 @@  #ifndef __ASM_C6X_SYSCALL_H  #define __ASM_C6X_SYSCALL_H +#include <uapi/linux/audit.h>  #include <linux/err.h>  #include <linux/sched.h> @@ -69,4 +70,10 @@ static inline void syscall_set_arguments(struct task_struct *task,  	regs->a9 = *args;  } +static inline int syscall_get_arch(struct task_struct *task) +{ +	return IS_ENABLED(CONFIG_CPU_BIG_ENDIAN) +		? AUDIT_ARCH_C6XBE : AUDIT_ARCH_C6X; +} +  #endif /* __ASM_C6X_SYSCALLS_H */ diff --git a/arch/csky/include/asm/syscall.h b/arch/csky/include/asm/syscall.h index bda0a446c63e..bc0d8717d28b 100644 --- a/arch/csky/include/asm/syscall.h +++ b/arch/csky/include/asm/syscall.h @@ -60,7 +60,7 @@ syscall_set_arguments(struct task_struct *task, struct pt_regs *regs,  }  static inline int -syscall_get_arch(void) +syscall_get_arch(struct task_struct *task)  {  	return AUDIT_ARCH_CSKY;  } diff --git a/arch/h8300/include/asm/syscall.h b/arch/h8300/include/asm/syscall.h index ddd483c6ca95..01666b8bb263 100644 --- a/arch/h8300/include/asm/syscall.h +++ b/arch/h8300/include/asm/syscall.h @@ -8,6 +8,7 @@  #include <linux/linkage.h>  #include <linux/types.h>  #include <linux/ptrace.h> +#include <uapi/linux/audit.h>  static inline int  syscall_get_nr(struct task_struct *task, struct pt_regs *regs) @@ -27,6 +28,11 @@ syscall_get_arguments(struct task_struct *task, struct pt_regs *regs,  	*args   = regs->er6;  } +static inline int +syscall_get_arch(struct task_struct *task) +{ +	return AUDIT_ARCH_H8300; +}  /* Misc syscall related bits */ diff --git a/arch/hexagon/include/asm/elf.h b/arch/hexagon/include/asm/elf.h index 80311e7b8ca6..d10fbd54ae51 100644 --- a/arch/hexagon/include/asm/elf.h +++ b/arch/hexagon/include/asm/elf.h @@ -23,11 +23,7 @@  #include <asm/ptrace.h>  #include <asm/user.h> - -/* - * This should really be in linux/elf-em.h. - */ -#define EM_HEXAGON	164   /* QUALCOMM Hexagon */ +#include <linux/elf-em.h>  struct elf32_hdr; diff --git a/arch/hexagon/include/asm/syscall.h b/arch/hexagon/include/asm/syscall.h index ae3a1e24fabd..dab26a71f577 100644 --- a/arch/hexagon/include/asm/syscall.h +++ b/arch/hexagon/include/asm/syscall.h @@ -21,6 +21,8 @@  #ifndef _ASM_HEXAGON_SYSCALL_H  #define _ASM_HEXAGON_SYSCALL_H +#include <uapi/linux/audit.h> +  typedef long (*syscall_fn)(unsigned long, unsigned long,  	unsigned long, unsigned long,  	unsigned long, unsigned long); @@ -41,4 +43,10 @@ static inline void syscall_get_arguments(struct task_struct *task,  {  	memcpy(args, &(®s->r00)[0], 6 * sizeof(args[0]));  } + +static inline int syscall_get_arch(struct task_struct *task) +{ +	return AUDIT_ARCH_HEXAGON; +} +  #endif diff --git a/arch/ia64/include/asm/syscall.h b/arch/ia64/include/asm/syscall.h index 0d9e7fab4a79..da108cd45174 100644 --- a/arch/ia64/include/asm/syscall.h +++ b/arch/ia64/include/asm/syscall.h @@ -74,7 +74,7 @@ static inline void syscall_set_arguments(struct task_struct *task,  	ia64_syscall_get_set_arguments(task, regs, args, 1);  } -static inline int syscall_get_arch(void) +static inline int syscall_get_arch(struct task_struct *task)  {  	return AUDIT_ARCH_IA64;  } diff --git a/arch/m68k/include/asm/syscall.h b/arch/m68k/include/asm/syscall.h new file mode 100644 index 000000000000..465ac039be09 --- /dev/null +++ b/arch/m68k/include/asm/syscall.h @@ -0,0 +1,12 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#ifndef _ASM_M68K_SYSCALL_H +#define _ASM_M68K_SYSCALL_H + +#include <uapi/linux/audit.h> + +static inline int syscall_get_arch(struct task_struct *task) +{ +	return AUDIT_ARCH_M68K; +} + +#endif	/* _ASM_M68K_SYSCALL_H */ diff --git a/arch/microblaze/include/asm/syscall.h b/arch/microblaze/include/asm/syscall.h index 833d3a53dab3..3a6924f3cbde 100644 --- a/arch/microblaze/include/asm/syscall.h +++ b/arch/microblaze/include/asm/syscall.h @@ -105,7 +105,7 @@ static inline void syscall_set_arguments(struct task_struct *task,  asmlinkage unsigned long do_syscall_trace_enter(struct pt_regs *regs);  asmlinkage void do_syscall_trace_leave(struct pt_regs *regs); -static inline int syscall_get_arch(void) +static inline int syscall_get_arch(struct task_struct *task)  {  	return AUDIT_ARCH_MICROBLAZE;  } diff --git a/arch/mips/include/asm/syscall.h b/arch/mips/include/asm/syscall.h index a2b4748655df..acf80ae0a430 100644 --- a/arch/mips/include/asm/syscall.h +++ b/arch/mips/include/asm/syscall.h @@ -141,14 +141,14 @@ extern const unsigned long sys_call_table[];  extern const unsigned long sys32_call_table[];  extern const unsigned long sysn32_call_table[]; -static inline int syscall_get_arch(void) +static inline int syscall_get_arch(struct task_struct *task)  {  	int arch = AUDIT_ARCH_MIPS;  #ifdef CONFIG_64BIT -	if (!test_thread_flag(TIF_32BIT_REGS)) { +	if (!test_tsk_thread_flag(task, TIF_32BIT_REGS)) {  		arch |= __AUDIT_ARCH_64BIT;  		/* N32 sets only TIF_32BIT_ADDR */ -		if (test_thread_flag(TIF_32BIT_ADDR)) +		if (test_tsk_thread_flag(task, TIF_32BIT_ADDR))  			arch |= __AUDIT_ARCH_CONVENTION_MIPS64_N32;  	}  #endif diff --git a/arch/mips/kernel/ptrace.c b/arch/mips/kernel/ptrace.c index 3a62f80958e1..414b6e9c900b 100644 --- a/arch/mips/kernel/ptrace.c +++ b/arch/mips/kernel/ptrace.c @@ -1418,7 +1418,7 @@ asmlinkage long syscall_trace_enter(struct pt_regs *regs, long syscall)  		unsigned long args[6];  		sd.nr = syscall; -		sd.arch = syscall_get_arch(); +		sd.arch = syscall_get_arch(current);  		syscall_get_arguments(current, regs, args);  		for (i = 0; i < 6; i++)  			sd.args[i] = args[i]; diff --git a/arch/nds32/include/asm/elf.h b/arch/nds32/include/asm/elf.h index 95f3ea253e4c..02250626b9f0 100644 --- a/arch/nds32/include/asm/elf.h +++ b/arch/nds32/include/asm/elf.h @@ -10,14 +10,13 @@  #include <asm/ptrace.h>  #include <asm/fpu.h> +#include <linux/elf-em.h>  typedef unsigned long elf_greg_t;  typedef unsigned long elf_freg_t[3];  extern unsigned int elf_hwcap; -#define EM_NDS32			167 -  #define R_NDS32_NONE			0  #define R_NDS32_16_RELA			19  #define R_NDS32_32_RELA			20 diff --git a/arch/nds32/include/asm/syscall.h b/arch/nds32/include/asm/syscall.h index 671ebd357496..174b8571d362 100644 --- a/arch/nds32/include/asm/syscall.h +++ b/arch/nds32/include/asm/syscall.h @@ -5,6 +5,7 @@  #ifndef _ASM_NDS32_SYSCALL_H  #define _ASM_NDS32_SYSCALL_H	1 +#include <uapi/linux/audit.h>  #include <linux/err.h>  struct task_struct;  struct pt_regs; @@ -145,4 +146,12 @@ void syscall_set_arguments(struct task_struct *task, struct pt_regs *regs,  	memcpy(®s->uregs[0] + 1, args, 5 * sizeof(args[0]));  } + +static inline int +syscall_get_arch(struct task_struct *task) +{ +	return IS_ENABLED(CONFIG_CPU_BIG_ENDIAN) +		? AUDIT_ARCH_NDS32BE : AUDIT_ARCH_NDS32; +} +  #endif /* _ASM_NDS32_SYSCALL_H */ diff --git a/arch/nios2/include/asm/syscall.h b/arch/nios2/include/asm/syscall.h index d7624ed06efb..c4f3f8b86f28 100644 --- a/arch/nios2/include/asm/syscall.h +++ b/arch/nios2/include/asm/syscall.h @@ -17,6 +17,7 @@  #ifndef __ASM_NIOS2_SYSCALL_H__  #define __ASM_NIOS2_SYSCALL_H__ +#include <uapi/linux/audit.h>  #include <linux/err.h>  #include <linux/sched.h> @@ -79,4 +80,9 @@ static inline void syscall_set_arguments(struct task_struct *task,  	regs->r9 = *args;  } +static inline int syscall_get_arch(struct task_struct *task) +{ +	return AUDIT_ARCH_NIOS2; +} +  #endif diff --git a/arch/openrisc/include/asm/syscall.h b/arch/openrisc/include/asm/syscall.h index b4ff07c1baed..61de227f53a1 100644 --- a/arch/openrisc/include/asm/syscall.h +++ b/arch/openrisc/include/asm/syscall.h @@ -68,7 +68,7 @@ syscall_set_arguments(struct task_struct *task, struct pt_regs *regs,  	memcpy(®s->gpr[3], args, 6 * sizeof(args[0]));  } -static inline int syscall_get_arch(void) +static inline int syscall_get_arch(struct task_struct *task)  {  	return AUDIT_ARCH_OPENRISC;  } diff --git a/arch/parisc/include/asm/syscall.h b/arch/parisc/include/asm/syscall.h index 62a6d477fae0..80757e43cf2c 100644 --- a/arch/parisc/include/asm/syscall.h +++ b/arch/parisc/include/asm/syscall.h @@ -48,11 +48,11 @@ static inline void syscall_rollback(struct task_struct *task,  	/* do nothing */  } -static inline int syscall_get_arch(void) +static inline int syscall_get_arch(struct task_struct *task)  {  	int arch = AUDIT_ARCH_PARISC;  #ifdef CONFIG_64BIT -	if (!is_compat_task()) +	if (!__is_compat_task(task))  		arch = AUDIT_ARCH_PARISC64;  #endif  	return arch; diff --git a/arch/powerpc/include/asm/syscall.h b/arch/powerpc/include/asm/syscall.h index 1243045bad2d..a048fed0722f 100644 --- a/arch/powerpc/include/asm/syscall.h +++ b/arch/powerpc/include/asm/syscall.h @@ -94,9 +94,15 @@ static inline void syscall_set_arguments(struct task_struct *task,  	regs->orig_gpr3 = args[0];  } -static inline int syscall_get_arch(void) +static inline int syscall_get_arch(struct task_struct *task)  { -	int arch = is_32bit_task() ? AUDIT_ARCH_PPC : AUDIT_ARCH_PPC64; +	int arch; + +	if (IS_ENABLED(CONFIG_PPC64) && !test_tsk_thread_flag(task, TIF_32BIT)) +		arch = AUDIT_ARCH_PPC64; +	else +		arch = AUDIT_ARCH_PPC; +  #ifdef __LITTLE_ENDIAN__  	arch |= __AUDIT_ARCH_LE;  #endif diff --git a/arch/riscv/include/asm/syscall.h b/arch/riscv/include/asm/syscall.h index a3d5273ded7c..0f2fe1794c8f 100644 --- a/arch/riscv/include/asm/syscall.h +++ b/arch/riscv/include/asm/syscall.h @@ -88,7 +88,7 @@ static inline void syscall_set_arguments(struct task_struct *task,  	memcpy(®s->a1, args, 5 * sizeof(regs->a1));  } -static inline int syscall_get_arch(void) +static inline int syscall_get_arch(struct task_struct *task)  {  #ifdef CONFIG_64BIT  	return AUDIT_ARCH_RISCV64; diff --git a/arch/s390/include/asm/syscall.h b/arch/s390/include/asm/syscall.h index ab3407aa4fd8..f073292e9fdb 100644 --- a/arch/s390/include/asm/syscall.h +++ b/arch/s390/include/asm/syscall.h @@ -79,10 +79,10 @@ static inline void syscall_set_arguments(struct task_struct *task,  	regs->orig_gpr2 = args[0];  } -static inline int syscall_get_arch(void) +static inline int syscall_get_arch(struct task_struct *task)  {  #ifdef CONFIG_COMPAT -	if (test_tsk_thread_flag(current, TIF_31BIT)) +	if (test_tsk_thread_flag(task, TIF_31BIT))  		return AUDIT_ARCH_S390;  #endif  	return AUDIT_ARCH_S390X; diff --git a/arch/sh/include/asm/syscall_32.h b/arch/sh/include/asm/syscall_32.h index 8c9d7e5e5dcc..0b5b8e75edac 100644 --- a/arch/sh/include/asm/syscall_32.h +++ b/arch/sh/include/asm/syscall_32.h @@ -72,7 +72,7 @@ static inline void syscall_set_arguments(struct task_struct *task,  	regs->regs[4] = args[0];  } -static inline int syscall_get_arch(void) +static inline int syscall_get_arch(struct task_struct *task)  {  	int arch = AUDIT_ARCH_SH; diff --git a/arch/sh/include/asm/syscall_64.h b/arch/sh/include/asm/syscall_64.h index 22fad97da066..72efcbc76f91 100644 --- a/arch/sh/include/asm/syscall_64.h +++ b/arch/sh/include/asm/syscall_64.h @@ -59,7 +59,7 @@ static inline void syscall_set_arguments(struct task_struct *task,  	memcpy(®s->regs[2], args, 6 * sizeof(args[0]));  } -static inline int syscall_get_arch(void) +static inline int syscall_get_arch(struct task_struct *task)  {  	int arch = AUDIT_ARCH_SH; diff --git a/arch/sparc/include/asm/syscall.h b/arch/sparc/include/asm/syscall.h index 4d075434e816..62a5a78804c4 100644 --- a/arch/sparc/include/asm/syscall.h +++ b/arch/sparc/include/asm/syscall.h @@ -127,10 +127,11 @@ static inline void syscall_set_arguments(struct task_struct *task,  		regs->u_regs[UREG_I0 + i] = args[i];  } -static inline int syscall_get_arch(void) +static inline int syscall_get_arch(struct task_struct *task)  {  #if defined(CONFIG_SPARC64) && defined(CONFIG_COMPAT) -	return in_compat_syscall() ? AUDIT_ARCH_SPARC : AUDIT_ARCH_SPARC64; +	return test_tsk_thread_flag(task, TIF_32BIT) +		? AUDIT_ARCH_SPARC : AUDIT_ARCH_SPARC64;  #elif defined(CONFIG_SPARC64)  	return AUDIT_ARCH_SPARC64;  #else diff --git a/arch/unicore32/include/asm/elf.h b/arch/unicore32/include/asm/elf.h index 829042d07722..ae66dc1be49e 100644 --- a/arch/unicore32/include/asm/elf.h +++ b/arch/unicore32/include/asm/elf.h @@ -19,6 +19,7 @@   * ELF register definitions..   */  #include <asm/ptrace.h> +#include <linux/elf-em.h>  typedef unsigned long elf_greg_t;  typedef unsigned long elf_freg_t[3]; @@ -28,8 +29,6 @@ typedef elf_greg_t elf_gregset_t[ELF_NGREG];  typedef struct fp_state elf_fpregset_t; -#define EM_UNICORE		110 -  #define R_UNICORE_NONE		0  #define R_UNICORE_PC24		1  #define R_UNICORE_ABS32		2 diff --git a/arch/unicore32/include/asm/syscall.h b/arch/unicore32/include/asm/syscall.h new file mode 100644 index 000000000000..607961797fff --- /dev/null +++ b/arch/unicore32/include/asm/syscall.h @@ -0,0 +1,12 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#ifndef _ASM_UNICORE_SYSCALL_H +#define _ASM_UNICORE_SYSCALL_H + +#include <uapi/linux/audit.h> + +static inline int syscall_get_arch(struct task_struct *task) +{ +	return AUDIT_ARCH_UNICORE; +} + +#endif	/* _ASM_UNICORE_SYSCALL_H */ diff --git a/arch/x86/include/asm/syscall.h b/arch/x86/include/asm/syscall.h index 4c305471ec33..b05ad16174e5 100644 --- a/arch/x86/include/asm/syscall.h +++ b/arch/x86/include/asm/syscall.h @@ -105,7 +105,7 @@ static inline void syscall_set_arguments(struct task_struct *task,  	memcpy(®s->bx + i, args, n * sizeof(args[0]));  } -static inline int syscall_get_arch(void) +static inline int syscall_get_arch(struct task_struct *task)  {  	return AUDIT_ARCH_I386;  } @@ -160,10 +160,12 @@ static inline void syscall_set_arguments(struct task_struct *task,  	}  } -static inline int syscall_get_arch(void) +static inline int syscall_get_arch(struct task_struct *task)  {  	/* x32 tasks should be considered AUDIT_ARCH_X86_64. */ -	return in_ia32_syscall() ? AUDIT_ARCH_I386 : AUDIT_ARCH_X86_64; +	return (IS_ENABLED(CONFIG_IA32_EMULATION) && +		task->thread_info.status & TS_COMPAT) +		? AUDIT_ARCH_I386 : AUDIT_ARCH_X86_64;  }  #endif	/* CONFIG_X86_32 */ diff --git a/arch/x86/um/asm/syscall.h b/arch/x86/um/asm/syscall.h index ef898af102d1..56a2f0913e3c 100644 --- a/arch/x86/um/asm/syscall.h +++ b/arch/x86/um/asm/syscall.h @@ -9,7 +9,7 @@ typedef asmlinkage long (*sys_call_ptr_t)(unsigned long, unsigned long,  					  unsigned long, unsigned long,  					  unsigned long, unsigned long); -static inline int syscall_get_arch(void) +static inline int syscall_get_arch(struct task_struct *task)  {  #ifdef CONFIG_X86_32  	return AUDIT_ARCH_I386; diff --git a/arch/xtensa/include/asm/syscall.h b/arch/xtensa/include/asm/syscall.h index 91dc06d58060..359ab40e935a 100644 --- a/arch/xtensa/include/asm/syscall.h +++ b/arch/xtensa/include/asm/syscall.h @@ -14,7 +14,7 @@  #include <asm/ptrace.h>  #include <uapi/linux/audit.h> -static inline int syscall_get_arch(void) +static inline int syscall_get_arch(struct task_struct *task)  {  	return AUDIT_ARCH_XTENSA;  } |