Commit f970165b authored by Andy Lutomirski's avatar Andy Lutomirski Committed by Linus Torvalds

x86/compat: remove is_compat_task()

x86's is_compat_task always checked the current syscall type, not the
task type.  It has no non-arch users any more, so just remove it to
avoid confusion.

On x86, nothing should really be checking the task ABI.  There are
legitimate users for the syscall ABI and for the mm ABI.
Signed-off-by: default avatarAndy Lutomirski <luto@kernel.org>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 7365abba
...@@ -316,9 +316,10 @@ static inline bool is_x32_task(void) ...@@ -316,9 +316,10 @@ static inline bool is_x32_task(void)
return false; return false;
} }
static inline bool is_compat_task(void) static inline bool in_compat_syscall(void)
{ {
return is_ia32_task() || is_x32_task(); return is_ia32_task() || is_x32_task();
} }
#define in_compat_syscall in_compat_syscall /* override the generic impl */
#endif /* _ASM_X86_COMPAT_H */ #endif /* _ASM_X86_COMPAT_H */
...@@ -58,7 +58,7 @@ int ftrace_int3_handler(struct pt_regs *regs); ...@@ -58,7 +58,7 @@ int ftrace_int3_handler(struct pt_regs *regs);
#define ARCH_TRACE_IGNORE_COMPAT_SYSCALLS 1 #define ARCH_TRACE_IGNORE_COMPAT_SYSCALLS 1
static inline bool arch_trace_is_compat_syscall(struct pt_regs *regs) static inline bool arch_trace_is_compat_syscall(struct pt_regs *regs)
{ {
if (is_compat_task()) if (in_compat_syscall())
return true; return true;
return false; return false;
} }
......
...@@ -478,7 +478,7 @@ void set_personality_ia32(bool x32) ...@@ -478,7 +478,7 @@ void set_personality_ia32(bool x32)
if (current->mm) if (current->mm)
current->mm->context.ia32_compat = TIF_X32; current->mm->context.ia32_compat = TIF_X32;
current->personality &= ~READ_IMPLIES_EXEC; current->personality &= ~READ_IMPLIES_EXEC;
/* is_compat_task() uses the presence of the x32 /* in_compat_syscall() uses the presence of the x32
syscall bit flag to determine compat status */ syscall bit flag to determine compat status */
current_thread_info()->status &= ~TS_COMPAT; current_thread_info()->status &= ~TS_COMPAT;
} else { } else {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment