lkml.org 
[lkml]   [2012]   [Feb]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[tip:x86/x32] x32: Make sure TS_COMPAT is cleared for x32 tasks
    Commit-ID:  ce5f7a99df87918b5be4618a9386213a8e9a7146
    Gitweb: http://git.kernel.org/tip/ce5f7a99df87918b5be4618a9386213a8e9a7146
    Author: Bobby Powers <bobbypowers@gmail.com>
    AuthorDate: Sat, 25 Feb 2012 23:25:38 -0500
    Committer: H. Peter Anvin <hpa@zytor.com>
    CommitDate: Sat, 25 Feb 2012 20:42:18 -0800

    x32: Make sure TS_COMPAT is cleared for x32 tasks

    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>
    Link: http://lkml.kernel.org/r/1330230338-25077-1-git-send-email-bobbypowers@gmail.com
    Signed-off-by: H. Peter Anvin <hpa@zytor.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 a0701da..32e0412 100644
    --- a/arch/x86/kernel/process_64.c
    +++ b/arch/x86/kernel/process_64.c
    @@ -540,6 +540,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);

    \
     
     \ /
      Last update: 2012-02-26 06:55    [W:0.027 / U:0.804 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site