The change "x86-64: seccomp: fix 32/64 syscall hole" breaks compilation on
MIPS (and possibly other architectures):
/home/tbm/kernel/linux-2.6-2.6.29~rc7/debian/build/source_mips_none/kernel/seccomp.c: In function ‘__secure_computing’:
/home/tbm/kernel/linux-2.6-2.6.29~rc7/debian/build/source_mips_none/kernel/seccomp.c:42: error: implicit declaration of function ‘is_compat_task’
make[6]: *** [kernel/seccomp.o] Error 1
--
Martin Michlmayr
http://www.cyrius.com/
> The change "x86-64: seccomp: fix 32/64 syscall hole" breaks compilation on
> MIPS (and possibly other architectures):
That's what Linus asked for.
He wants you to define is_compat_task() in asm/compat.h.
Thanks,
Roland
This is merely a build fix required after
5b1017404aea6d2e552e991b3fd814d839e9cd67 was applied. MIPS doesn't have
the issue that was fixed for x86-64 by that patch.
This also doesn't solve the N32 issue which is that N32 seccomp processes
will be treated as non-compat processes thus only have access to N64
syscalls.
Signed-off-by: Ralf Baechle <[email protected]>
diff --git a/arch/mips/include/asm/compat.h b/arch/mips/include/asm/compat.h
index ac5d541..6c5b409 100644
--- a/arch/mips/include/asm/compat.h
+++ b/arch/mips/include/asm/compat.h
@@ -3,6 +3,8 @@
/*
* Architecture specific compatibility types
*/
+#include <linux/seccomp.h>
+#include <linux/thread_info.h>
#include <linux/types.h>
#include <asm/page.h>
#include <asm/ptrace.h>
@@ -218,4 +220,9 @@ struct compat_shmid64_ds {
compat_ulong_t __unused2;
};
+static inline int is_compat_task(void)
+{
+ return test_thread_flag(TIF_32BIT);
+}
+
#endif /* _ASM_COMPAT_H */