On Fri, Jun 23, 2017 at 06:03:37PM +0100, James Morse wrote: > Hi Yury, > > On 04/06/17 13:00, Yury Norov wrote: > > ILP32 has context-related structures different from both aarch32 and > > aarch64/lp64. In this patch compat_arch_ptrace() renamed to > > compat_a32_ptrace(), and compat_arch_ptrace() only makes choice between > > compat_a32_ptrace() and new compat_ilp32_ptrace() handler. > > > > compat_ilp32_ptrace() calls generic compat_ptrace_request() for all > > requests except PTRACE_GETSIGMASK and PTRACE_SETSIGMASK, which need > > special handling. > > Can you elaborate on this special handling? > > How come we don't need to wrap PTRACE_{G,S}ETSIGMASK for aarch32 compat? > >From kernel/signal32.c that uses compat_sigset_t too. > > It looks like aarch64, ilp32 and aarch32 all use the same size sigset_t, > so doesn't compat_ptrace_request() already do everything we need? > > ... > > Is this fixing an endian problem? If so, can we document it as such. Do we > already have the same bug for aarch32 compat? Originally, the problem was found by Zhou Chengming: https://lkml.org/lkml/2016/6/27/18 But I think you right, this is the fix for endian. It lookd like aarch32 is buggy, but IIUC to confirm it, the BE arm64 machine is needed. I use qemu and AFAIR it has no BE support. Zhou, can you test it on your machine and if the bug will be reproduced, send the patch for aarch32? Yury -- To unsubscribe from this list: send the line "unsubscribe linux-doc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html