All of lore.kernel.org
 help / color / mirror / Atom feed
From: "H. Peter Anvin" <hpa@zytor.com>
To: Bobby Powers <bobbypowers@gmail.com>
Cc: linux-kernel@vger.kernel.org, mingo@redhat.com,
	tglx@linutronix.de, x86@kernel.org, hjl.tools@gmail.com,
	Andi Kleen <andi@firstfloor.org>
Subject: Re: [PATCH] x32: make sure TS_COMPAT is cleared for x32 tasks
Date: Sat, 25 Feb 2012 21:54:57 -0800	[thread overview]
Message-ID: <4F49C931.4010203@zytor.com> (raw)
In-Reply-To: <1330230338-25077-1-git-send-email-bobbypowers@gmail.com>

On 02/25/2012 08:25 PM, Bobby Powers wrote:
> If a process has a non-x32 ia32 personality and changes to x32, the
> process would keep its TS_COMPAT flag. x32 uses the presence of the
> x32 flag on a syscall to determine compat status, so make sure
> TS_COMPAT is cleared.
> 
> Signed-off-by: Bobby Powers <bobbypowers@gmail.com>
> ---
>  arch/x86/kernel/process_64.c |    3 +++
>  1 files changed, 3 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c
> index e9ec8f1..a465973 100644
> --- a/arch/x86/kernel/process_64.c
> +++ b/arch/x86/kernel/process_64.c
> @@ -539,6 +539,9 @@ void set_personality_ia32(bool x32)
>  		clear_thread_flag(TIF_IA32);
>  		set_thread_flag(TIF_X32);
>  		current->personality &= ~READ_IMPLIES_EXEC;
> +		/* is_compat_task() uses the presence of the x32
> +		   syscall bit flag to determine compat status */
> +		current_thread_info()->status &= ~TS_COMPAT;
>  	} else {
>  		set_thread_flag(TIF_IA32);
>  		clear_thread_flag(TIF_X32);

I suspect we should also clear TS_COMPAT in set_personality_64() ...
this is not x32-related, but would affect the behavior when execing a
64-bit task from an i386 compatibility task.  I have no idea if it
actually makes any difference, and clearly it can't have been too broken
since noone has found a problem all these years, but it looks wrong...

	-hpa

-- 
H. Peter Anvin, Intel Open Source Technology Center
I work for Intel.  I don't speak on their behalf.


      parent reply	other threads:[~2012-02-26  5:55 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-26  4:25 [PATCH] x32: make sure TS_COMPAT is cleared for x32 tasks Bobby Powers
2012-02-26  5:50 ` [tip:x86/x32] x32: Make " tip-bot for Bobby Powers
2012-02-26  5:54 ` H. Peter Anvin [this message]

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=4F49C931.4010203@zytor.com \
    --to=hpa@zytor.com \
    --cc=andi@firstfloor.org \
    --cc=bobbypowers@gmail.com \
    --cc=hjl.tools@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=tglx@linutronix.de \
    --cc=x86@kernel.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.