diff options
author | Andi Kleen <ak@suse.de> | 2006-01-11 16:44:06 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-01-11 22:04:53 -0500 |
commit | bf2fcc6fdfe4f4e92bb74f062c0a1be189f3a561 (patch) | |
tree | 0bcc33f681c7e8ce6596c9323d4a1026ede84994 /arch/x86_64/kernel | |
parent | 2966387b481a11a90a7bed6600fc17b4253f6980 (diff) |
[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 'arch/x86_64/kernel')
-rw-r--r-- | arch/x86_64/kernel/asm-offsets.c | 1 | ||||
-rw-r--r-- | arch/x86_64/kernel/entry.S | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/arch/x86_64/kernel/asm-offsets.c b/arch/x86_64/kernel/asm-offsets.c index 00a08d13230a..cfb4f9cebea4 100644 --- a/arch/x86_64/kernel/asm-offsets.c +++ b/arch/x86_64/kernel/asm-offsets.c | |||
@@ -33,6 +33,7 @@ int main(void) | |||
33 | ENTRY(flags); | 33 | ENTRY(flags); |
34 | ENTRY(addr_limit); | 34 | ENTRY(addr_limit); |
35 | ENTRY(preempt_count); | 35 | ENTRY(preempt_count); |
36 | ENTRY(status); | ||
36 | BLANK(); | 37 | BLANK(); |
37 | #undef ENTRY | 38 | #undef ENTRY |
38 | #define ENTRY(entry) DEFINE(pda_ ## entry, offsetof(struct x8664_pda, entry)) | 39 | #define ENTRY(entry) DEFINE(pda_ ## entry, offsetof(struct x8664_pda, entry)) |
diff --git a/arch/x86_64/kernel/entry.S b/arch/x86_64/kernel/entry.S index 45e0ab8a1fca..300555bc56b3 100644 --- a/arch/x86_64/kernel/entry.S +++ b/arch/x86_64/kernel/entry.S | |||
@@ -313,6 +313,7 @@ int_with_check: | |||
313 | movl threadinfo_flags(%rcx),%edx | 313 | movl threadinfo_flags(%rcx),%edx |
314 | andl %edi,%edx | 314 | andl %edi,%edx |
315 | jnz int_careful | 315 | jnz int_careful |
316 | andl $~TS_COMPAT,threadinfo_status(%rcx) | ||
316 | jmp retint_swapgs | 317 | jmp retint_swapgs |
317 | 318 | ||
318 | /* Either reschedule or signal or syscall exit tracking needed. */ | 319 | /* Either reschedule or signal or syscall exit tracking needed. */ |