X-Git-Url: http://ftp.safe.ca/?a=blobdiff_plain;f=kernel%2Fseccomp.c;h=57d4b13b631de36161349feb99ae6f76a2984b06;hb=44234adcdce38f83c56e05f808ce656175b4beeb;hp=1dfa8a50972612e6d1b0ef6118a1fabbea2a937a;hpb=1d9d02feeee89e9132034d504c9a45eeaf618a3d;p=safe%2Fjmp%2Flinux-2.6 diff --git a/kernel/seccomp.c b/kernel/seccomp.c index 1dfa8a5..57d4b13 100644 --- a/kernel/seccomp.c +++ b/kernel/seccomp.c @@ -8,6 +8,7 @@ #include #include +#include /* #define SECCOMP_DEBUG 1 */ #define NR_SECCOMP_MODES 1 @@ -22,7 +23,7 @@ static int mode1_syscalls[] = { 0, /* null terminated */ }; -#ifdef TIF_32BIT +#ifdef CONFIG_COMPAT static int mode1_syscalls_32[] = { __NR_seccomp_read_32, __NR_seccomp_write_32, __NR_seccomp_exit_32, __NR_seccomp_sigreturn_32, 0, /* null terminated */ @@ -37,8 +38,8 @@ void __secure_computing(int this_syscall) switch (mode) { case 1: syscall = mode1_syscalls; -#ifdef TIF_32BIT - if (test_thread_flag(TIF_32BIT)) +#ifdef CONFIG_COMPAT + if (is_compat_task()) syscall = mode1_syscalls_32; #endif do { @@ -74,6 +75,9 @@ long prctl_set_seccomp(unsigned long seccomp_mode) if (seccomp_mode && seccomp_mode <= NR_SECCOMP_MODES) { current->seccomp.mode = seccomp_mode; set_thread_flag(TIF_SECCOMP); +#ifdef TIF_NOTSC + disable_TSC(); +#endif ret = 0; }