Make syscall_get_arch() distinguish arm64 and arm64/ilp32 by adding AUDIT_ARCH_AARCH64ILP32. Sugested-by: Andy Lutomirski <luto@xxxxxxxxxxxxxx> Signed-off-by: Yury Norov <ynorov@xxxxxxxxxxx> --- arch/arm64/include/asm/syscall.h | 3 +++ include/uapi/linux/audit.h | 1 + 2 files changed, 4 insertions(+) diff --git a/arch/arm64/include/asm/syscall.h b/arch/arm64/include/asm/syscall.h index 73fbe08763b0..77578d703cb1 100644 --- a/arch/arm64/include/asm/syscall.h +++ b/arch/arm64/include/asm/syscall.h @@ -126,6 +126,9 @@ static inline int syscall_get_arch(void) if (is_a32_compat_task()) return AUDIT_ARCH_ARM; + if (is_ilp32_compat_task()) + return AUDIT_ARCH_AARCH64ILP32; + return AUDIT_ARCH_AARCH64; } diff --git a/include/uapi/linux/audit.h b/include/uapi/linux/audit.h index 818ae690ab79..624127147404 100644 --- a/include/uapi/linux/audit.h +++ b/include/uapi/linux/audit.h @@ -374,6 +374,7 @@ enum { #define __AUDIT_ARCH_LE 0x40000000 #define AUDIT_ARCH_AARCH64 (EM_AARCH64|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE) +#define AUDIT_ARCH_AARCH64ILP32 (EM_AARCH64|__AUDIT_ARCH_LE) #define AUDIT_ARCH_ALPHA (EM_ALPHA|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE) #define AUDIT_ARCH_ARM (EM_ARM|__AUDIT_ARCH_LE) #define AUDIT_ARCH_ARMEB (EM_ARM) -- 2.17.1