lkml.org 
[lkml]   [2012]   [Dec]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: [PATCH] arch/tile: provide PT_FLAGS_COMPAT value in pt_regs
Hi Chris,

it is too late for me to even try to read this patch, but...

On 12/12, Chris Metcalf wrote:
>
> This flag is set for ptrace GETREGS or PEEKUSER for processes
> that are COMPAT, i.e. 32-bit.
^^^^^^^^^^^^^^^^^^^

at least on x86 this is not the same. TS_COMPAT can also be set if a 64-bit
task calls the 32-bit syscall.

> --- a/arch/tile/include/uapi/asm/ptrace.h
> +++ b/arch/tile/include/uapi/asm/ptrace.h
> @@ -84,5 +84,11 @@ struct pt_regs {
> #define PTRACE_O_TRACEMIGRATE 0x00010000
> #define PTRACE_EVENT_MIGRATE 16
>
> +/*
> + * Flag bits in pt_regs.flags that are part of the ptrace API.
> + * We start our numbering higher up to avoid confusion with the
> + * non-ABI kernel-internal values that use the low 16 bits.
> + */
> +#define PT_FLAGS_COMPAT 0x10000 /* process is an -m32 compat process */

Can't understand how this connects to ptrace (I mean task->ptrace).

OK, let it live in asm/ptrace.h, but it seems that it is similar to
(say) PT_FLAGS_RESTORE_REGS and thus it should be 8?

And. arch/tile/kernel/ptrace.c:arch_ptrace() does

case PTRACE_SETOPTIONS:
/* Support TILE-specific ptrace options. */
child->ptrace &= ~PT_TRACE_MASK_TILE;
tmp = data & PTRACE_O_MASK_TILE;
data &= ~PTRACE_O_MASK_TILE;

AFAICS we need something like BUILD_BUG_ON(PTRACE_O_MASK_TILE & PTRACE_O_MASK),
and

ret = ptrace_request(child, request, addr, data);
if (tmp & PTRACE_O_TRACEMIGRATE)
child->ptrace |= PT_TRACE_MIGRATE;
this also needs "ret == 0" check, and "&= ~PT_TRACE_MASK_TILE" abobe should
be moved here, no?

OTOH using /bin/grep I can't see where do we check ">ptrace & PT_TRACE_MIGRATE".


In short: confused ;)

Oleg.



\
 
 \ /
  Last update: 2012-12-13 01:01    [W:0.107 / U:0.524 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site