Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1605916
| From | hpa@zytor.com |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCHv2] x86/mm: set x32 syscall bit in SET_PERSONALITY() |
| Date | 2017-03-21 20:00 +0100 |
| Message-ID | <tnxaG-7fa-9@gated-at.bofh.it> (permalink) |
| References | <tnvLz-6rG-3@gated-at.bofh.it> <tnvLz-6rG-1@gated-at.bofh.it> <tnw4V-6ys-17@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On March 21, 2017 10:45:57 AM PDT, Andy Lutomirski <luto@amacapital.net> wrote: >On Tue, Mar 21, 2017 at 10:17 AM, Cyrill Gorcunov <gorcunov@gmail.com> >wrote: >> On Tue, Mar 21, 2017 at 07:37:12PM +0300, Dmitry Safonov wrote: >> ... >>> diff --git a/arch/x86/kernel/process_64.c >b/arch/x86/kernel/process_64.c >>> index d6b784a5520d..d3d4d9abcaf8 100644 >>> --- a/arch/x86/kernel/process_64.c >>> +++ b/arch/x86/kernel/process_64.c >>> @@ -519,8 +519,14 @@ void set_personality_ia32(bool x32) >>> if (current->mm) >>> current->mm->context.ia32_compat = TIF_X32; >>> current->personality &= ~READ_IMPLIES_EXEC; >>> - /* in_compat_syscall() uses the presence of the x32 >>> - syscall bit flag to determine compat status */ >>> + /* >>> + * in_compat_syscall() uses the presence of the x32 >>> + * syscall bit flag to determine compat status. >>> + * On the bitness of syscall relies x86 mmap() code, >>> + * so set x32 syscall bit right here to make >>> + * in_compat_syscall() work during exec(). >>> + */ >>> + task_pt_regs(current)->orig_ax |= __X32_SYSCALL_BIT; >>> current->thread.status &= ~TS_COMPAT; >> >> Hi! I must admit I didn't follow close the overall series (so can't >> comment much here :) but I have a slightly unrelated question -- is >> there a way to figure out if task is running in x32 mode say with >> some ptrace or procfs sign? > >You should be able to figure out of a *syscall* is x32 by simply >looking at bit 30 in the syscall number. (This is unlike i386, which >is currently not reflected in ptrace.) > >Do we actually have an x32 per-task mode at all? If so, maybe we can >just remove it on top of Dmitry's series. We do, for things like signal delivery mostly. We have tried relying on it as little as possible, intentionally. -- Sent from my Android device with K-9 Mail. Please excuse my brevity.
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Re: [PATCHv2] x86/mm: set x32 syscall bit in SET_PERSONALITY() Cyrill Gorcunov <gorcunov@gmail.com> - 2017-03-21 18:30 +0100
Re: [PATCHv2] x86/mm: set x32 syscall bit in SET_PERSONALITY() Andy Lutomirski <luto@amacapital.net> - 2017-03-21 18:50 +0100
[Q] Figuring out task mode Cyrill Gorcunov <gorcunov@gmail.com> - 2017-03-21 19:10 +0100
Re: [Q] Figuring out task mode Andy Lutomirski <luto@amacapital.net> - 2017-03-22 01:00 +0100
Re: [PATCHv2] x86/mm: set x32 syscall bit in SET_PERSONALITY() Cyrill Gorcunov <gorcunov@gmail.com> - 2017-03-21 19:50 +0100
Re: [PATCHv2] x86/mm: set x32 syscall bit in SET_PERSONALITY() hpa@zytor.com - 2017-03-21 20:00 +0100
Re: [PATCHv2] x86/mm: set x32 syscall bit in SET_PERSONALITY() Cyrill Gorcunov <gorcunov@gmail.com> - 2017-03-21 20:20 +0100
Re: [PATCHv2] x86/mm: set x32 syscall bit in SET_PERSONALITY() hpa@zytor.com - 2017-03-21 20:30 +0100
Re: [PATCHv2] x86/mm: set x32 syscall bit in SET_PERSONALITY() Cyrill Gorcunov <gorcunov@gmail.com> - 2017-03-21 20:30 +0100
Re: [PATCHv2] x86/mm: set x32 syscall bit in SET_PERSONALITY() hpa@zytor.com - 2017-03-21 20:00 +0100
Re: [PATCHv2] x86/mm: set x32 syscall bit in SET_PERSONALITY() Andy Lutomirski <luto@amacapital.net> - 2017-03-21 20:40 +0100
Re: [PATCHv2] x86/mm: set x32 syscall bit in SET_PERSONALITY() Cyrill Gorcunov <gorcunov@gmail.com> - 2017-03-21 20:40 +0100
csiph-web