Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752990AbdF0KNn (ORCPT ); Tue, 27 Jun 2017 06:13:43 -0400 Received: from foss.arm.com ([217.140.101.70]:54566 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752957AbdF0KN1 (ORCPT ); Tue, 27 Jun 2017 06:13:27 -0400 Message-ID: <59522F8A.4010709@arm.com> Date: Tue, 27 Jun 2017 11:12:26 +0100 From: James Morse User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.6.0 MIME-Version: 1.0 To: Yury Norov , zhouchengming1@huawei.com CC: Catalin Marinas , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, Arnd Bergmann , Andrew Pinski , Andrew Pinski , Adam Borowski , Chris Metcalf , Steve Ellcey , Maxim Kuvyrkov , Ramana Radhakrishnan , Florian Weimer , Bamvor Zhangjian , Andreas Schwab , Chris Metcalf , Heiko Carstens , schwidefsky@de.ibm.com, broonie@kernel.org, Joseph Myers , christoph.muellner@theobroma-systems.com, szabolcs.nagy@arm.com, klimov.linux@gmail.com, Nathan_Lynch@mentor.com, agraf@suse.de, Prasun.Kapoor@caviumnetworks.com, geert@linux-m68k.org, philipp.tomsich@theobroma-systems.com, manuel.montezelo@gmail.com, linyongting@huawei.com, davem@davemloft.net, Bamvor Jian Zhang Subject: Re: [PATCH 18/20] arm64: ptrace: handle ptrace_request differently for aarch32 and ilp32 References: <20170604120009.342-1-ynorov@caviumnetworks.com> <20170604120009.342-19-ynorov@caviumnetworks.com> <594D49E9.7090900@arm.com> <20170623222852.hao3gi7ppwexu7wq@yury-thinkpad> In-Reply-To: <20170623222852.hao3gi7ppwexu7wq@yury-thinkpad> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1606 Lines: 45 Hi Yury, Zhou, On 23/06/17 23:28, Yury Norov wrote: > 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? I've reproduced this on big endian compat-aarch32: yes its broken. I will respin Zhou's patch as a fix. Thanks, James