From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754916AbbKQWP6 (ORCPT ); Tue, 17 Nov 2015 17:15:58 -0500 Received: from mout.kundenserver.de ([212.227.17.24]:60339 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752811AbbKQWP4 (ORCPT ); Tue, 17 Nov 2015 17:15:56 -0500 From: Arnd Bergmann To: linux-arm-kernel@lists.infradead.org Cc: Yury Norov , catalin.marinas@arm.com, linux-kernel@vger.kernel.org, pinskia@gmail.com, Prasun.Kapoor@caviumnetworks.com, schwab@suse.de, Nathan_Lynch@mentor.com, agraf@suse.de, klimov.linux@gmail.com, broonie@kernel.org, jan.dakinevich@gmail.com, ddaney.cavm@gmail.com, bamvor.zhangjian@huawei.com, philipp.tomsich@theobroma-systems.com, andrey.konovalov@linaro.org, joseph@codesourcery.com, christoph.muellner@theobroma-systems.com Subject: Re: [PATCH v6 06/19] arm64:ilp32: share signal structures between ILP32 and LP64 ABIs Date: Tue, 17 Nov 2015 23:14:25 +0100 Message-ID: <5805597.NtPXVqS0W3@wuerfel> User-Agent: KMail/4.11.5 (Linux/3.16.0-10-generic; KDE/4.11.5; x86_64; ; ) In-Reply-To: <1447795019-30176-7-git-send-email-ynorov@caviumnetworks.com> References: <1447795019-30176-1-git-send-email-ynorov@caviumnetworks.com> <1447795019-30176-7-git-send-email-ynorov@caviumnetworks.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Provags-ID: V03:K0:5AWK+IZNTq4enr3WfsADxx/bCeM8BYaPf2sZ5cCt0IIf2XHb0II NaN1cgyxdMTO/ADTXWJDuLU4bdcZD8SjL0bvTo9WFoYYG0wtVZvVYXbD8oZUDVQm8HKTYAf zWxRbpIQ61wjB9Hf1LtdwhrB0KdezZHEdJcwUKFe+zOIScT6LA7blNrCSRlF6gfx1ollT1n SHTTBoykKEIqapwMA5XfQ== X-UI-Out-Filterresults: notjunk:1;V01:K0:VKK0C8Wo7rE=:XkosyUUbw8BZ8QqWG4c7g3 pNFuDu5N2a28v+CBnGRHGEqaH+pD3fFK/1q91gDytVZSC5AuFV/7mZz0JCu4h+1VititS+QCr 6B0p44tZYYUkgK/zjWYUUfBtTpy/W3d4b6Q4DCxbZ6xiKF29fi1uL2BoLXU2LxNLUvNDytvml EH8tlWPUFlBFBdwr1RcnYgdwS4B9wOT80scFsPdqYFo+Au0Le+UQQYlt6sM0eOSdyLs4ZeGH7 c1aGXHDiPUtNrvyT4LQ7GZye3vYmGg2QPKep3NM71SrecBVxqinSc5BzK9LjOeNBs7sH5zehn wFYNG15tC/ivrsc1cdS0OO0PTNtD8IUR+6wvFaJ4SkK2lEA85DnpDf89SFOFOFDvsh+6qfAhu 9gXJGYrwrf/Y1kHJ+JRbDQ38FwS8iFT9AbSbHxiXqmZdzhzD+u7yqqgZfA+gDprnvrmzo0140 4EKKmGAD0GSYAp3rrK78MSS/FgEhBIR3axFjPBf0duVcDmSGBSaL2mTc2z+1GkEmUKFR0tuMo 1wWqtC0E+6QZzTptNXCpm5pQPFVVXWH8SCtsC70CYtRMq1ZQ7A2pQEQGEapFYtDFNbXYVs6Bq e7u2HzAN/VckB9CJ1g9+UGPiER4wwT3MnSDLGo61XvGNRjvrJZ99uuru854nSR0wsrZeKCIyB P97uSc5bSKzTFrQnHs8VSTGaZUlnuzviudJ1S/v0Q3EzyKn2lYTaMGDMxCcIXoLcD32keuvbY Xp9dnIkAj9cPZZoz Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wednesday 18 November 2015 00:16:46 Yury Norov wrote: > > +/* For ILP32, sigset should be the same size fields as LP64 so use > + unsigned long long. */ > +#ifdef __ILP32__ > +#define __SIGSET_INNER_TYPE __extension__ unsigned long long > +#define _NSIG_BPW 64 > + > +# ifdef __AARCH64EB__ > +# define __SIGNAL_INNER(type, field) \ > + __extension__ struct { \ > + int __pad_##field; \ > + type field; \ > + } __attribute__((aligned(8))) > +# else > +# define __SIGNAL_INNER(type, field) \ > + __extension__ struct { \ > + type field; \ > + int __pad_##field; \ > + } __attribute__((aligned(8))) > +# endif > + > +# define __SIGACTION_HANDLER(field) \ > + __SIGNAL_INNER(__sighandler_t, field) > + > +#define __SIGACTION_FLAGS(field) \ > + __extension__ unsigned long long field > + > +#define __SIGACTION_RESTORER(field) \ > + __SIGNAL_INNER(__sigrestore_t, field) > + > +#endif Ah, I missed that in the comments for patch 14. I would think that it makes sense to share siginfo_t with the 64-bit version, when the normal compat_siginfo_t doesn't work, but I see no point in changing compat_sigset_t: There is nothing architecture specific in that, so you can just use the arm32 version of that, which simplifies both the kernel and libc sides. Arnd From mboxrd@z Thu Jan 1 00:00:00 1970 From: arnd@arndb.de (Arnd Bergmann) Date: Tue, 17 Nov 2015 23:14:25 +0100 Subject: [PATCH v6 06/19] arm64:ilp32: share signal structures between ILP32 and LP64 ABIs In-Reply-To: <1447795019-30176-7-git-send-email-ynorov@caviumnetworks.com> References: <1447795019-30176-1-git-send-email-ynorov@caviumnetworks.com> <1447795019-30176-7-git-send-email-ynorov@caviumnetworks.com> Message-ID: <5805597.NtPXVqS0W3@wuerfel> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Wednesday 18 November 2015 00:16:46 Yury Norov wrote: > > +/* For ILP32, sigset should be the same size fields as LP64 so use > + unsigned long long. */ > +#ifdef __ILP32__ > +#define __SIGSET_INNER_TYPE __extension__ unsigned long long > +#define _NSIG_BPW 64 > + > +# ifdef __AARCH64EB__ > +# define __SIGNAL_INNER(type, field) \ > + __extension__ struct { \ > + int __pad_##field; \ > + type field; \ > + } __attribute__((aligned(8))) > +# else > +# define __SIGNAL_INNER(type, field) \ > + __extension__ struct { \ > + type field; \ > + int __pad_##field; \ > + } __attribute__((aligned(8))) > +# endif > + > +# define __SIGACTION_HANDLER(field) \ > + __SIGNAL_INNER(__sighandler_t, field) > + > +#define __SIGACTION_FLAGS(field) \ > + __extension__ unsigned long long field > + > +#define __SIGACTION_RESTORER(field) \ > + __SIGNAL_INNER(__sigrestore_t, field) > + > +#endif Ah, I missed that in the comments for patch 14. I would think that it makes sense to share siginfo_t with the 64-bit version, when the normal compat_siginfo_t doesn't work, but I see no point in changing compat_sigset_t: There is nothing architecture specific in that, so you can just use the arm32 version of that, which simplifies both the kernel and libc sides. Arnd