|
@@ -3,6 +3,7 @@
|
|
|
|
|
|
#include <uapi/linux/audit.h>
|
|
|
#include <linux/kernel.h>
|
|
|
+#include <linux/compat.h>
|
|
|
#include <linux/sched.h>
|
|
|
#include <asm/ptrace.h>
|
|
|
#include <asm/thread_info.h>
|
|
@@ -128,7 +129,13 @@ static inline void syscall_set_arguments(struct task_struct *task,
|
|
|
|
|
|
static inline int syscall_get_arch(void)
|
|
|
{
|
|
|
- return is_32bit_task() ? AUDIT_ARCH_SPARC : AUDIT_ARCH_SPARC64;
|
|
|
+#if defined(CONFIG_SPARC64) && defined(CONFIG_COMPAT)
|
|
|
+ return in_compat_syscall() ? AUDIT_ARCH_SPARC : AUDIT_ARCH_SPARC64;
|
|
|
+#elif defined(CONFIG_SPARC64)
|
|
|
+ return AUDIT_ARCH_SPARC64;
|
|
|
+#else
|
|
|
+ return AUDIT_ARCH_SPARC;
|
|
|
+#endif
|
|
|
}
|
|
|
|
|
|
#endif /* __ASM_SPARC_SYSCALL_H */
|