[PATCH 2/6] x86: Enable seccomp architecture tracking

From: Kees Cook
Date: Wed Sep 23 2020 - 19:34:55 EST


Provide seccomp internals with the details to calculate which syscall
table the running kernel is expecting to deal with. This allows for
efficient architecture pinning and paves the way for constant-action
bitmaps.

Signed-off-by: Kees Cook <keescook@xxxxxxxxxxxx>
---
arch/x86/include/asm/seccomp.h | 14 ++++++++++++++
1 file changed, 14 insertions(+)

diff --git a/arch/x86/include/asm/seccomp.h b/arch/x86/include/asm/seccomp.h
index 2bd1338de236..38181e20e1d3 100644
--- a/arch/x86/include/asm/seccomp.h
+++ b/arch/x86/include/asm/seccomp.h
@@ -16,6 +16,20 @@
#define __NR_seccomp_sigreturn_32 __NR_ia32_sigreturn
#endif

+#ifdef CONFIG_X86_64
+# define SECCOMP_ARCH AUDIT_ARCH_X86_64
+# ifdef CONFIG_COMPAT
+# define SECCOMP_ARCH_COMPAT AUDIT_ARCH_I386
+# endif
+# ifdef CONFIG_X86_X32_ABI
+# define SECCOMP_MULTIPLEXED_SYSCALL_TABLE_ARCH AUDIT_ARCH_X86_64
+# define SECCOMP_MULTIPLEXED_SYSCALL_TABLE_MASK __X32_SYSCALL_BIT
+# define SECCOMP_MULTIPLEXED_SYSCALL_TABLE_SHIFT 29
+#endif
+#else /* !CONFIG_X86_64 */
+# define SECCOMP_ARCH AUDIT_ARCH_I386
+#endif
+
#include <asm-generic/seccomp.h>

#endif /* _ASM_X86_SECCOMP_H */
--
2.25.1