aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/include/asm/syscall.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/include/asm/syscall.h')
-rw-r--r--arch/powerpc/include/asm/syscall.h10
1 files changed, 8 insertions, 2 deletions
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,
94 regs->orig_gpr3 = args[0]; 94 regs->orig_gpr3 = args[0];
95} 95}
96 96
97static inline int syscall_get_arch(void) 97static inline int syscall_get_arch(struct task_struct *task)
98{ 98{
99 int arch = is_32bit_task() ? AUDIT_ARCH_PPC : AUDIT_ARCH_PPC64; 99 int arch;
100
101 if (IS_ENABLED(CONFIG_PPC64) && !test_tsk_thread_flag(task, TIF_32BIT))
102 arch = AUDIT_ARCH_PPC64;
103 else
104 arch = AUDIT_ARCH_PPC;
105
100#ifdef __LITTLE_ENDIAN__ 106#ifdef __LITTLE_ENDIAN__
101 arch |= __AUDIT_ARCH_LE; 107 arch |= __AUDIT_ARCH_LE;
102#endif 108#endif