Skip to content

Commit

Permalink
asm-generic: siginfo: define ia64 si_codes unconditionally
Browse files Browse the repository at this point in the history
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.

Reported-by: Eric W. Biederman <ebiederm@xmission.com>
[arnd: took Eric's changelog text]
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
  • Loading branch information
Arnd Bergmann committed Mar 26, 2018
1 parent 3f66493 commit a402ab8
Showing 1 changed file with 8 additions and 12 deletions.
20 changes: 8 additions & 12 deletions include/uapi/asm-generic/siginfo.h
Original file line number Diff line number Diff line change
Expand Up @@ -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

/*
Expand All @@ -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

/*
Expand Down

0 comments on commit a402ab8

Please sign in to comment.