linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: ebiederm@xmission.com (Eric W. Biederman)
To: Arnd Bergmann <arnd@arndb.de>
Cc: linux-arch <linux-arch@vger.kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Al Viro <viro@zeniv.linux.org.uk>,
	Thomas Gleixner <tglx@linutronix.de>
Subject: Re: [PATCH 12/16] asm-generic: siginfo: remove obsolete #ifdefs
Date: Thu, 15 Mar 2018 06:37:49 -0500	[thread overview]
Message-ID: <87o9jpbmcy.fsf@xmission.com> (raw)
In-Reply-To: <CAK8P3a1GL2N=emTbSgNGHxOrXtG6BxqRGMg00-tZqKg6-0O5=w@mail.gmail.com> (Arnd Bergmann's message of "Thu, 15 Mar 2018 11:48:12 +0100")

Arnd Bergmann <arnd@arndb.de> writes:

> On Thu, Mar 15, 2018 at 11:06 AM, Eric W. Biederman
> <ebiederm@xmission.com> wrote:
>> Arnd Bergmann <arnd@arndb.de> writes:
>>
>>> The frv, tile and blackfin architectures are being removed, so
>>> we can clean up this header by removing all the special cases
>>> except those for ia64.
>>>
>>> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
>>> ---
>>>  include/uapi/asm-generic/siginfo.h | 36 ++----------------------------------
>>>  1 file changed, 2 insertions(+), 34 deletions(-)
>>>
>>
>> If I am reading siginfo.h correctly after this cleanup patch
>> we can perform another cleanup and unconditionally define
>> all of the ia64 si_codes except for __SEGV_PSTKOVF which
>> aliases SEGV_PKUERR.
>>
>> Which has the advantage that no one is tempted to define any further
>> aliased si_codes.
>
> Do you mean like this:
>
> diff --git a/include/uapi/asm-generic/siginfo.h
> b/include/uapi/asm-generic/siginfo.h
> index b2ebf16c391a..ff13ed50dde8 100644
> --- a/include/uapi/asm-generic/siginfo.h
> +++ b/include/uapi/asm-generic/siginfo.h
> @@ -186,11 +186,9 @@ typedef struct siginfo {
>  #define ILL_PRVREG     6       /* privileged register */
>  #define ILL_COPROC     7       /* coprocessor error */
>  #define ILL_BADSTK     8       /* internal stack error */
> -#ifdef __ia64__
> -# define ILL_BADIADDR  9       /* unimplemented instruction address */
> -# define __ILL_BREAK   10      /* illegal break */
> -# define __ILL_BNDMOD  11      /* bundle-update (modification) in progress */
> -#endif
> +#define ILL_BADIADDR   9       /* unimplemented instruction address */
> +#define __ILL_BREAK    10      /* illegal break */
> +#define __ILL_BNDMOD   11      /* bundle-update (modification) in progress */
>  #define NSIGILL                11
>
>  /*
> @@ -204,13 +202,11 @@ typedef struct siginfo {
>  #define FPE_FLTRES     6       /* floating point inexact result */
>  #define FPE_FLTINV     7       /* floating point invalid operation */
>  #define FPE_FLTSUB     8       /* subscript out of range */
> -#ifdef __ia64__
> -# define __FPE_DECOVF  9       /* decimal overflow */
> -# define __FPE_DECDIV  10      /* decimal division by zero */
> -# define __FPE_DECERR  11      /* packed decimal error */
> -# define __FPE_INVASC  12      /* invalid ASCII digit */
> -# define __FPE_INVDEC  13      /* invalid decimal digit */
> -#endif
> +#define __FPE_DECOVF   9       /* decimal overflow */
> +#define __FPE_DECDIV   10      /* decimal division by zero */
> +#define __FPE_DECERR   11      /* packed decimal error */
> +#define __FPE_INVASC   12      /* invalid ASCII digit */
> +#define __FPE_INVDEC   13      /* invalid decimal digit */
>  #define NSIGFPE                13
>
>  /*
>
> That seems reasonable. If you send me a patch with a proper
> changelog (I don't think I could explain this well enough), I'll
> add it to the series.

Yes.

I just realized you can also remove the #ifdefs for BUS_MCEERR_AR,
BUS_MCEERR_AO, and SEGV_BNDERR.  As those si_codes are now always
defined.  That description I expect you can handle.

For a description of the above change how does this sound?

Unlike system call numbers the assignment of si_codes has never had a
reason to be made per architecture.  Some architectures have had unique
conditions to report and reporting those conditions needed new si_codes.
Nothing has ever needed si_codes to have different values on different
architectures.  The si_code space is vast so even with defining all
si_codes on all architectures there is no danger in running out of
si_code values.

The history of the si_codes BUS_MCEERR_AR, BUS_MCEER_AO, SEGV_BNDERR,
and SEGV_PKUERR show that a need of one architecture frequently becomes
a need of another architecture which makes sharing si_codes between
architectures a positive benefit and something to be encouraged.

Where there are no conflicts with the historical ia64 arch specific
si_codes and any other si_codes make them generic si_codes.  We might
need them on another architecture someday.

This leaves only the good example of arch generic si_codes in the kernel
for future architectures and architecture enhancments to follow.
Without bad examples to follow it should be easy to avoid the mistakes
of the past.

Eric

  reply	other threads:[~2018-03-15 11:38 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-14 14:34 [PATCH 00/16] remove eight obsolete architectures Arnd Bergmann
2018-03-14 14:36 ` [PATCH 01/16] mn10300: Remove the architecture Arnd Bergmann
2018-03-14 14:36   ` [PATCH 02/16] arch: remove frv port Arnd Bergmann
2018-03-14 14:36   ` [PATCH 03/16] arch: remove m32r port Arnd Bergmann
2018-03-14 14:36   ` [PATCH 04/16] arch: remove score port Arnd Bergmann
2018-03-14 14:36   ` [PATCH 05/16] arch: remove blackfin port Arnd Bergmann
2018-03-14 16:51     ` [PATCH] scripts/checkstack.pl: remove blackfin support Tobias Klauser
2018-03-14 17:04       ` Arnd Bergmann
2018-03-15 22:24     ` [PATCH 05/16] arch: remove blackfin port Bryan Wu
2018-03-14 14:36   ` [PATCH 06/16] arch: remove tile port Arnd Bergmann
2018-03-16  1:23     ` Chris Metcalf
2018-03-16  8:12       ` Arnd Bergmann
2018-03-14 14:36   ` [PATCH 07/16] CRIS: Drop support for the CRIS port Arnd Bergmann
2018-03-14 14:39 ` [PATCH 10/16] mm: remove obsolete alloc_remap() Arnd Bergmann
2018-03-14 14:50   ` Pavel Tatashin
2018-03-14 14:56     ` Arnd Bergmann
2018-03-14 14:59       ` Pavel Tatashin
2018-03-14 14:43 ` [PATCH 11/16] treewide: simplify Kconfig dependencies for removed archs Arnd Bergmann
2018-03-14 14:43   ` [PATCH 12/16] asm-generic: siginfo: remove obsolete #ifdefs Arnd Bergmann
2018-03-14 16:38     ` Eric W. Biederman
2018-03-14 20:31     ` Dominik Brodowski
2018-03-14 20:40       ` Arnd Bergmann
2018-03-14 20:45         ` Dominik Brodowski
2018-03-15 10:06     ` Eric W. Biederman
2018-03-15 10:48       ` Arnd Bergmann
2018-03-15 11:37         ` Eric W. Biederman [this message]
2018-03-15 12:50           ` Arnd Bergmann
2018-03-15 18:07             ` Eric W. Biederman
2018-03-15 12:54   ` [PATCH 11/16] treewide: simplify Kconfig dependencies for removed archs Kalle Valo
2018-03-19 23:06   ` Alexandre Belloni
2018-03-14 14:51 ` [PATCH 13/16] Documentation: arch-support: remove obsolete architectures Arnd Bergmann
2018-03-14 14:52 ` [PATCH 15/16] recordmcount.pl: drop blackin and tile support Arnd Bergmann
2018-03-15 20:42   ` Steven Rostedt
2018-03-14 14:53 ` [PATCH 16/16] ktest: remove obsolete architectures Arnd Bergmann
2018-03-15 20:46   ` Steven Rostedt
2018-03-14 20:38 ` [PATCH 14/16] asm-generic: clean up asm/unistd.h Arnd Bergmann
2018-03-15  9:42 ` [PATCH 00/16] remove eight obsolete architectures David Howells
2018-03-15  9:48   ` Geert Uytterhoeven
2018-03-15 16:56     ` rfc: remove print_vma_addr ? (was Re: [PATCH 00/16] remove eight obsolete architectures) Joe Perches
2018-03-15 17:08       ` Matthew Wilcox
2018-03-15 17:13         ` Joe Perches
2018-03-15  9:56   ` [PATCH 00/16] remove eight obsolete architectures Arnd Bergmann
2018-03-16  4:50     ` afzal mohammed
2018-03-15  9:59   ` Hannes Reinecke
2018-03-15 10:42     ` Arnd Bergmann
2018-03-15 14:17       ` Christoph Hellwig
2018-03-20 17:11       ` Palmer Dabbelt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87o9jpbmcy.fsf@xmission.com \
    --to=ebiederm@xmission.com \
    --cc=arnd@arndb.de \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tglx@linutronix.de \
    --cc=viro@zeniv.linux.org.uk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).