From: Oleg Nesterov <oleg@redhat.com>
To: Andrew Morton <akpm@linux-foundation.org>,
Andi Kleen <andi@firstfloor.org>
Cc: "H. Peter Anvin" <hpa@zytor.com>,
Roland McGrath <roland@redhat.com>,
Linus Torvalds <torvalds@linux-foundation.org>,
linux-kernel@vger.kernel.org
Subject: [PATCH 2/3] x86: set_personality_ia32() abuses TS_COMPAT
Date: Tue, 16 Feb 2010 15:02:42 +0100 [thread overview]
Message-ID: <20100216140242.GC16448@redhat.com> (raw)
In-Reply-To: <20100216140126.GA16448@redhat.com>
set_personality_ia32() sets TS_COMPAT for unknown reason.
This doesn't hurt but this is unneeded and confusing, TS_COMPAT
means we are inside the 32bit syscall.
In fact I'd say this is not right, but fortunetely do_execve() can
never return something which could confuse syscall_get_error().
And apart from do_signal() we never check TS_COMPAT during return
to user-mode.
Another reason why I think this is not right. I am not sure I fully
understand this asm, but it seems to me that system_call_fastpath
can "leak" TS_COMPAT. While probably this doesn't really matter, we
can return to user-mode with this bit set.
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
---
arch/x86/kernel/process_64.c | 3 ---
1 file changed, 3 deletions(-)
--- exec/arch/x86/kernel/process_64.c~2_dont_set_compat 2010-02-16 13:26:34.000000000 +0100
+++ exec/arch/x86/kernel/process_64.c 2010-02-16 13:46:25.000000000 +0100
@@ -528,9 +528,6 @@ void set_personality_ia32(void)
/* Make sure to be in 32bit mode */
set_thread_flag(TIF_IA32);
current->personality |= force_personality32;
-
- /* Prepare the first "return" to user space */
- current_thread_info()->status |= TS_COMPAT;
}
unsigned long get_wchan(struct task_struct *p)
next prev parent reply other threads:[~2010-02-16 14:03 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-15 16:17 x86: get rid of the insane TIF_ABI_PENDING bit Oleg Nesterov
2010-02-15 16:23 ` H. Peter Anvin
2010-02-15 16:50 ` Oleg Nesterov
2010-02-15 18:06 ` H. Peter Anvin
2010-02-15 18:52 ` Oleg Nesterov
2010-02-15 19:07 ` H. Peter Anvin
2010-02-15 19:10 ` H. Peter Anvin
2010-02-15 19:41 ` Roland McGrath
2010-02-15 20:07 ` H. Peter Anvin
2010-02-15 21:14 ` Roland McGrath
2010-02-15 20:43 ` H. Peter Anvin
2010-02-15 21:05 ` Roland McGrath
2010-02-16 10:19 ` Oleg Nesterov
2010-02-16 10:23 ` Andi Kleen
2010-02-16 14:01 ` [PATCH 0/3] Was: " Oleg Nesterov
2010-02-16 14:02 ` [PATCH 1/3] x86: set_personality_ia32() misses force_personality32 Oleg Nesterov
2010-02-16 23:27 ` [tip:x86/urgent] " tip-bot for Oleg Nesterov
2010-02-16 14:02 ` Oleg Nesterov [this message]
2010-02-16 15:40 ` [PATCH 2/3] x86: set_personality_ia32() abuses TS_COMPAT Linus Torvalds
2010-02-16 17:16 ` Oleg Nesterov
2010-02-16 17:38 ` H. Peter Anvin
2010-02-16 17:44 ` Oleg Nesterov
2010-02-16 17:51 ` H. Peter Anvin
2010-02-17 15:40 ` Oleg Nesterov
2010-02-16 18:43 ` Linus Torvalds
2010-02-16 14:03 ` [PATCH 3/3] x86: ELF_PLAT_INIT() shouldn't worry about TIF_IA32 Oleg Nesterov
2010-02-16 14:24 ` Oleg Nesterov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100216140242.GC16448@redhat.com \
--to=oleg@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=andi@firstfloor.org \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=roland@redhat.com \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.