signal/ia64: Move the ia64 specific si_codes to asm-generic/siginfo.h
authorEric W. Biederman <ebiederm@xmission.com>
Sun, 14 Jan 2018 00:57:14 +0000 (18:57 -0600)
committerEric W. Biederman <ebiederm@xmission.com>
Mon, 15 Jan 2018 23:42:33 +0000 (17:42 -0600)
Having si_codes in many different files simply encourages duplicate
definitions that can cause problems later.  To avoid that merge the
ia64 specific si_codes into uapi/asm-generic/siginfo.h

Update the sanity checks in arch/x86/kernel/signal_compat.c to expect
the now lager NSIGILL and NSIGFPE.  As nothing excpe the larger count
is exposed on x86 no additional code needs to be updated.

Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
arch/ia64/include/uapi/asm/siginfo.h
arch/x86/kernel/signal_compat.c
include/uapi/asm-generic/siginfo.h

index 66839031b767c959ffd054873cbb844abaff482b..5aa454ed89db0f1e3fc7dc66b6838d5ae0957c4b 100644 (file)
 #define __ISR_VALID_BIT        0
 #define __ISR_VALID    (1 << __ISR_VALID_BIT)
 
-/*
- * SIGILL si_codes
- */
-#define ILL_BADIADDR   9       /* unimplemented instruction address */
-#define __ILL_BREAK    10      /* illegal break */
-#define __ILL_BNDMOD   11      /* bundle-update (modification) in progress */
-#undef NSIGILL
-#define NSIGILL                11
-
 /*
  * SIGFPE si_codes
  */
 #ifdef __KERNEL__
 #define FPE_FIXME      0       /* Broken dup of SI_USER */
 #endif /* __KERNEL__ */
-#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 */
-#undef NSIGFPE
-#define NSIGFPE                13
-
-/*
- * SIGSEGV si_codes
- */
-#define __SEGV_PSTKOVF 4       /* paragraph stack overflow */
-#undef NSIGSEGV
-#define NSIGSEGV       4
-
-#undef NSIGTRAP
-#define NSIGTRAP       4
-
 
 #endif /* _UAPI_ASM_IA64_SIGINFO_H */
index 27495909932d826ebcc8313fe760c7b3f3d922d2..feb3ac135d0c4bed86f21f908db7b3a6acbf91fd 100644 (file)
@@ -25,8 +25,8 @@ static inline void signal_compat_build_tests(void)
         * limits also have to look at this code.  Make sure any
         * new fields are handled in copy_siginfo_to_user32()!
         */
-       BUILD_BUG_ON(NSIGILL  != 8);
-       BUILD_BUG_ON(NSIGFPE  != 8);
+       BUILD_BUG_ON(NSIGILL  != 11);
+       BUILD_BUG_ON(NSIGFPE  != 13);
        BUILD_BUG_ON(NSIGSEGV != 4);
        BUILD_BUG_ON(NSIGBUS  != 5);
        BUILD_BUG_ON(NSIGTRAP != 4);
index eef4d778a5d4c638d5256182fde3eda1fef53905..2f0ae46076034d15f81999057fd7293f31653f09 100644 (file)
@@ -186,7 +186,12 @@ typedef struct siginfo {
 #define ILL_PRVREG     6       /* privileged register */
 #define ILL_COPROC     7       /* coprocessor error */
 #define ILL_BADSTK     8       /* internal stack error */
-#define NSIGILL                8
+#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 NSIGILL                11
 
 /*
  * SIGFPE si_codes
@@ -199,7 +204,14 @@ 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 */
-#define NSIGFPE                8
+#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 NSIGFPE                13
 
 /*
  * SIGSEGV si_codes
@@ -207,7 +219,11 @@ typedef struct siginfo {
 #define SEGV_MAPERR    1       /* address not mapped to object */
 #define SEGV_ACCERR    2       /* invalid permissions for mapped object */
 #define SEGV_BNDERR    3       /* failed address bound checks */
-#define SEGV_PKUERR    4       /* failed protection key checks */
+#ifdef __ia64__
+# define __SEGV_PSTKOVF        4       /* paragraph stack overflow */
+#else
+# define SEGV_PKUERR   4       /* failed protection key checks */
+#endif
 #define NSIGSEGV       4
 
 /*