Re: [PATCH seccomp 3/8] powerpc: Enable seccomp architecture tracking
From: Michael Ellerman <mpe@ellerman.id.au>
Date: 2020-11-04 10:26:17
Also in:
linux-riscv, linux-s390, linux-sh, lkml
YiFei Zhu [off-list ref] writes:
quoted hunk ↗ jump to hunk
From: YiFei Zhu <redacted> To enable seccomp constant action bitmaps, we need to have a static mapping to the audit architecture and system call table size. Add these for powerpc. Signed-off-by: YiFei Zhu <redacted> --- arch/powerpc/include/asm/seccomp.h | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+)diff --git a/arch/powerpc/include/asm/seccomp.h b/arch/powerpc/include/asm/seccomp.h index 51209f6071c5..3efcc83e9cc6 100644 --- a/arch/powerpc/include/asm/seccomp.h +++ b/arch/powerpc/include/asm/seccomp.h@@ -8,4 +8,25 @@ #include <asm-generic/seccomp.h> +#ifdef __LITTLE_ENDIAN__
As Kees mentioned this should (must?!) match the configured endian. But I think it would still be better to use the CONFIG symbol, which is CONFIG_CPU_LITTLE_ENDIAN.
+#define __SECCOMP_ARCH_LE_BIT __AUDIT_ARCH_LE +#else +#define __SECCOMP_ARCH_LE_BIT 0 +#endif + +#ifdef CONFIG_PPC64 +# define SECCOMP_ARCH_NATIVE (AUDIT_ARCH_PPC64 | __SECCOMP_ARCH_LE)
You use __SECCOMP_ARCH_LE there, but previously you only defined __SECCOMP_ARCH_LE_BIT. Is there some magic somewhere that defines __SECCOMP_ARCH_LE based on __SECCOMP_ARCH_LE_BIT ?
+# define SECCOMP_ARCH_NATIVE_NR NR_syscalls +# define SECCOMP_ARCH_NATIVE_NAME "ppc64"
What's the name used for? Usually we use "ppc64" for 64-bit big endian and "ppc64le" for 64-bit little endian.
+# ifdef CONFIG_COMPAT +# define SECCOMP_ARCH_COMPAT (AUDIT_ARCH_PPC | __SECCOMP_ARCH_LE) +# define SECCOMP_ARCH_COMPAT_NR NR_syscalls +# define SECCOMP_ARCH_COMPAT_NAME "powerpc"
And usually we use "ppc" for 32-bit.
+# endif +#else /* !CONFIG_PPC64 */ +# define SECCOMP_ARCH_NATIVE (AUDIT_ARCH_PPC | __SECCOMP_ARCH_LE) +# define SECCOMP_ARCH_NATIVE_NR NR_syscalls +# define SECCOMP_ARCH_NATIVE_NAME "powerpc" +#endif + #endif /* _ASM_POWERPC_SECCOMP_H */ -- 2.29.2
cheers