Messages in this thread | | | Date | Thu, 13 Dec 2012 11:41:13 -0500 | From | Chris Metcalf <> | Subject | Re: [PATCH] arch/tile: provide PT_FLAGS_COMPAT value in pt_regs |
| |
On 12/13/2012 11:27 AM, Oleg Nesterov wrote: > On 12/13, Chris Metcalf wrote: >> On 12/13/2012 10:49 AM, Oleg Nesterov wrote: >>> But ptrace_setoptions() returns EINVAL? it doesn't accept illegal bits. >> It does return EINVAL - but if it gets both legal and illegal bits, >> it honors all the legal bits first. > This was true in the past, but now we have > > static int ptrace_setoptions(struct task_struct *child, unsigned long data) > { > unsigned flags; > > if (data & ~(unsigned long)PTRACE_O_MASK) > return -EINVAL; > > /* Avoid intermediate state when all opts are cleared */ > flags = child->ptrace; > flags &= ~(PTRACE_O_MASK << PT_OPT_FLAG_SHIFT); > flags |= (data << PT_OPT_FLAG_SHIFT); > child->ptrace = flags; > > return 0; > }
Yup, I was looking at an older version of the code by mistake. See patch to follow. Thanks!
-- Chris Metcalf, Tilera Corp. http://www.tilera.com
| |