summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorAndi Kleen <ak@suse.de>2006-01-11 22:44:06 +0100
committerLinus Torvalds <torvalds@g5.osdl.org>2006-01-11 19:04:53 -0800
commitbf2fcc6fdfe4f4e92bb74f062c0a1be189f3a561 (patch)
tree0bcc33f681c7e8ce6596c9323d4a1026ede84994 /include
parent2966387b481a11a90a7bed6600fc17b4253f6980 (diff)
downloadlinux-bf2fcc6fdfe4f4e92bb74f062c0a1be189f3a561.tar.bz2
[PATCH] x86_64: Implement is_compat_task the right way
By setting a flag during a 32bit system call only Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include')
-rw-r--r--include/asm-x86_64/compat.h5
-rw-r--r--include/asm-x86_64/thread_info.h1
2 files changed, 6 insertions, 0 deletions
diff --git a/include/asm-x86_64/compat.h b/include/asm-x86_64/compat.h
index f0155c38f639..3863a7da372b 100644
--- a/include/asm-x86_64/compat.h
+++ b/include/asm-x86_64/compat.h
@@ -202,4 +202,9 @@ static __inline__ void __user *compat_alloc_user_space(long len)
return (void __user *)regs->rsp - len;
}
+static inline int is_compat_task(void)
+{
+ return current_thread_info()->status & TS_COMPAT;
+}
+
#endif /* _ASM_X86_64_COMPAT_H */
diff --git a/include/asm-x86_64/thread_info.h b/include/asm-x86_64/thread_info.h
index 08eb6e4f3737..eb7c5fda1870 100644
--- a/include/asm-x86_64/thread_info.h
+++ b/include/asm-x86_64/thread_info.h
@@ -138,6 +138,7 @@ static inline struct thread_info *stack_thread_info(void)
* have to worry about atomic accesses.
*/
#define TS_USEDFPU 0x0001 /* FPU was used by this task this quantum (SMP) */
+#define TS_COMPAT 0x0002 /* 32bit syscall active */
#endif /* __KERNEL__ */