Message ID | 20180314144614.1632190-2-arnd@arndb.de |
---|---|
State | Accepted |
Commit | 3f664931b33565641fdf1fdd3ff067def60e7f53 |
Headers | show |
Series | [01/16] mn10300: Remove the architecture | expand |
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. Acked-by: "Eric W. Biederman" <ebiederm@xmission.com> > > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > --- > include/uapi/asm-generic/siginfo.h | 36 ++---------------------------------- > 1 file changed, 2 insertions(+), 34 deletions(-) > > diff --git a/include/uapi/asm-generic/siginfo.h b/include/uapi/asm-generic/siginfo.h > index 85dc965afd89..b2ebf16c391a 100644 > --- a/include/uapi/asm-generic/siginfo.h > +++ b/include/uapi/asm-generic/siginfo.h > @@ -179,28 +179,13 @@ typedef struct siginfo { > * SIGILL si_codes > */ > #define ILL_ILLOPC 1 /* illegal opcode */ > -#ifdef __bfin__ > -# define ILL_ILLPARAOP 2 /* illegal opcode combine */ > -#endif > #define ILL_ILLOPN 2 /* illegal operand */ > #define ILL_ILLADR 3 /* illegal addressing mode */ > #define ILL_ILLTRP 4 /* illegal trap */ > -#ifdef __bfin__ > -# define ILL_ILLEXCPT 4 /* unrecoverable exception */ > -#endif > #define ILL_PRVOPC 5 /* privileged opcode */ > #define ILL_PRVREG 6 /* privileged register */ > #define ILL_COPROC 7 /* coprocessor error */ > #define ILL_BADSTK 8 /* internal stack error */ > -#ifdef __bfin__ > -# define ILL_CPLB_VI 9 /* D/I CPLB protect violation */ > -# define ILL_CPLB_MISS 10 /* D/I CPLB miss */ > -# define ILL_CPLB_MULHIT 11 /* D/I CPLB multiple hit */ > -#endif > -#ifdef __tile__ > -# define ILL_DBLFLT 9 /* double fault */ > -# define ILL_HARDWALL 10 /* user networks hardwall violation */ > -#endif > #ifdef __ia64__ > # define ILL_BADIADDR 9 /* unimplemented instruction address */ > # define __ILL_BREAK 10 /* illegal break */ > @@ -219,9 +204,6 @@ 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 __frv__ > -# define FPE_MDAOVF 9 /* media overflow */ > -#endif > #ifdef __ia64__ > # define __FPE_DECOVF 9 /* decimal overflow */ > # define __FPE_DECDIV 10 /* decimal division by zero */ > @@ -236,11 +218,7 @@ typedef struct siginfo { > */ > #define SEGV_MAPERR 1 /* address not mapped to object */ > #define SEGV_ACCERR 2 /* invalid permissions for mapped object */ > -#ifdef __bfin__ > -# define SEGV_STACKFLOW 3 /* stack overflow */ > -#else > -# define SEGV_BNDERR 3 /* failed address bound checks */ > -#endif > +#define SEGV_BNDERR 3 /* failed address bound checks */ > #ifdef __ia64__ > # define __SEGV_PSTKOVF 4 /* paragraph stack overflow */ > #else > @@ -254,12 +232,8 @@ typedef struct siginfo { > #define BUS_ADRALN 1 /* invalid address alignment */ > #define BUS_ADRERR 2 /* non-existent physical address */ > #define BUS_OBJERR 3 /* object specific hardware error */ > -#ifdef __bfin__ > -# define BUS_OPFETCH 4 /* error from instruction fetch */ > -#else > /* hardware memory error consumed on a machine check: action required */ > -# define BUS_MCEERR_AR 4 > -#endif > +#define BUS_MCEERR_AR 4 > /* hardware memory error detected in process but not consumed: action optional*/ > #define BUS_MCEERR_AO 5 > #define NSIGBUS 5 > @@ -271,12 +245,6 @@ typedef struct siginfo { > #define TRAP_TRACE 2 /* process trace trap */ > #define TRAP_BRANCH 3 /* process taken branch trap */ > #define TRAP_HWBKPT 4 /* hardware breakpoint/watchpoint */ > -#ifdef __bfin__ > -# define TRAP_STEP 1 /* single-step breakpoint */ > -# define TRAP_TRACEFLOW 2 /* trace buffer overflow */ > -# define TRAP_WATCHPT 3 /* watchpoint match */ > -# define TRAP_ILLTRAP 4 /* illegal trap */ > -#endif > #define NSIGTRAP 4 > > /*
On Wed, Mar 14, 2018 at 03:43:47PM +0100, Arnd Bergmann wrote: > 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> AFAICS, score is the only architecture which still defines __ARCH_WANT_SYSCALL_NO_FLAGS __ARCH_WANT_SYSCALL_OFF_T __ARCH_WANT_SYSCALL_DEPRECATED . So maybe you want to clean up include/uapi/asm-generic/unistd.h as well? Thanks, Dominik
On Wed, Mar 14, 2018 at 9:31 PM, Dominik Brodowski <linux@dominikbrodowski.net> wrote: > On Wed, Mar 14, 2018 at 03:43:47PM +0100, Arnd Bergmann wrote: >> 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> > > AFAICS, score is the only architecture which still defines > > __ARCH_WANT_SYSCALL_NO_FLAGS > __ARCH_WANT_SYSCALL_OFF_T > __ARCH_WANT_SYSCALL_DEPRECATED . > > So maybe you want to clean up include/uapi/asm-generic/unistd.h as well? Definitely. In fact, this was patch 14/16, but for some reason the mail never made it out. I tried again and it should be there now. Arnd
On Wed, Mar 14, 2018 at 09:40:28PM +0100, Arnd Bergmann wrote: > On Wed, Mar 14, 2018 at 9:31 PM, Dominik Brodowski > <linux@dominikbrodowski.net> wrote: > > On Wed, Mar 14, 2018 at 03:43:47PM +0100, Arnd Bergmann wrote: > >> 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> > > > > AFAICS, score is the only architecture which still defines > > > > __ARCH_WANT_SYSCALL_NO_FLAGS > > __ARCH_WANT_SYSCALL_OFF_T > > __ARCH_WANT_SYSCALL_DEPRECATED . > > > > So maybe you want to clean up include/uapi/asm-generic/unistd.h as well? > > Definitely. In fact, this was patch 14/16, but for some reason the mail never > made it out. I tried again and it should be there now. Thanks! Dominik
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. Eric
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. Arnd
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
On Thu, Mar 15, 2018 at 12:37 PM, Eric W. Biederman <ebiederm@xmission.com> wrote: >> On Thu, Mar 15, 2018 at 11:06 AM, Eric W. Biederman >> 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. > > 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. My existing patch already does this, and I've added a note to the changelog as well now. > 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. Ok, done. I've listed you as 'Suggested-by' for that patch. Since the changelog is way more work than the actual change, I would have made you the author of that patch, but I don't have a Signed-off-by from you for it. Arnd
Arnd Bergmann <arnd@arndb.de> writes: > On Thu, Mar 15, 2018 at 12:37 PM, Eric W. Biederman > <ebiederm@xmission.com> wrote: >>> On Thu, Mar 15, 2018 at 11:06 AM, Eric W. Biederman > >>> 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. >> >> 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. > > My existing patch already does this, and I've added a note to the changelog > as well now. I did not see the changes to kernel/signal.c and fs/signalfd.c that remove the #ifdef BUS_MCERR_AR etc. Did I miss that patch. >> 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. > > Ok, done. I've listed you as 'Suggested-by' for that patch. Since the > changelog is way more work than the actual change, I would have > made you the author of that patch, but I don't have a Signed-off-by > from you for it. For however much it helps. Reviewed-by: "Eric W. Biederman" <ebiederm@xmission.com> Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com> Eric
diff --git a/include/uapi/asm-generic/siginfo.h b/include/uapi/asm-generic/siginfo.h index 85dc965afd89..b2ebf16c391a 100644 --- a/include/uapi/asm-generic/siginfo.h +++ b/include/uapi/asm-generic/siginfo.h @@ -179,28 +179,13 @@ typedef struct siginfo { * SIGILL si_codes */ #define ILL_ILLOPC 1 /* illegal opcode */ -#ifdef __bfin__ -# define ILL_ILLPARAOP 2 /* illegal opcode combine */ -#endif #define ILL_ILLOPN 2 /* illegal operand */ #define ILL_ILLADR 3 /* illegal addressing mode */ #define ILL_ILLTRP 4 /* illegal trap */ -#ifdef __bfin__ -# define ILL_ILLEXCPT 4 /* unrecoverable exception */ -#endif #define ILL_PRVOPC 5 /* privileged opcode */ #define ILL_PRVREG 6 /* privileged register */ #define ILL_COPROC 7 /* coprocessor error */ #define ILL_BADSTK 8 /* internal stack error */ -#ifdef __bfin__ -# define ILL_CPLB_VI 9 /* D/I CPLB protect violation */ -# define ILL_CPLB_MISS 10 /* D/I CPLB miss */ -# define ILL_CPLB_MULHIT 11 /* D/I CPLB multiple hit */ -#endif -#ifdef __tile__ -# define ILL_DBLFLT 9 /* double fault */ -# define ILL_HARDWALL 10 /* user networks hardwall violation */ -#endif #ifdef __ia64__ # define ILL_BADIADDR 9 /* unimplemented instruction address */ # define __ILL_BREAK 10 /* illegal break */ @@ -219,9 +204,6 @@ 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 __frv__ -# define FPE_MDAOVF 9 /* media overflow */ -#endif #ifdef __ia64__ # define __FPE_DECOVF 9 /* decimal overflow */ # define __FPE_DECDIV 10 /* decimal division by zero */ @@ -236,11 +218,7 @@ typedef struct siginfo { */ #define SEGV_MAPERR 1 /* address not mapped to object */ #define SEGV_ACCERR 2 /* invalid permissions for mapped object */ -#ifdef __bfin__ -# define SEGV_STACKFLOW 3 /* stack overflow */ -#else -# define SEGV_BNDERR 3 /* failed address bound checks */ -#endif +#define SEGV_BNDERR 3 /* failed address bound checks */ #ifdef __ia64__ # define __SEGV_PSTKOVF 4 /* paragraph stack overflow */ #else @@ -254,12 +232,8 @@ typedef struct siginfo { #define BUS_ADRALN 1 /* invalid address alignment */ #define BUS_ADRERR 2 /* non-existent physical address */ #define BUS_OBJERR 3 /* object specific hardware error */ -#ifdef __bfin__ -# define BUS_OPFETCH 4 /* error from instruction fetch */ -#else /* hardware memory error consumed on a machine check: action required */ -# define BUS_MCEERR_AR 4 -#endif +#define BUS_MCEERR_AR 4 /* hardware memory error detected in process but not consumed: action optional*/ #define BUS_MCEERR_AO 5 #define NSIGBUS 5 @@ -271,12 +245,6 @@ typedef struct siginfo { #define TRAP_TRACE 2 /* process trace trap */ #define TRAP_BRANCH 3 /* process taken branch trap */ #define TRAP_HWBKPT 4 /* hardware breakpoint/watchpoint */ -#ifdef __bfin__ -# define TRAP_STEP 1 /* single-step breakpoint */ -# define TRAP_TRACEFLOW 2 /* trace buffer overflow */ -# define TRAP_WATCHPT 3 /* watchpoint match */ -# define TRAP_ILLTRAP 4 /* illegal trap */ -#endif #define NSIGTRAP 4 /*
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(-) -- 2.9.0