[Crash-utility] [PATCH 1/3] defs.h: Fix the value of TIF_SIGPENDING macro

HAGIO KAZUHITO(萩尾 一仁) k-hagio-ab at nec.com
Thu Jun 3 07:14:19 UTC 2021


-----Original Message-----
> Use the "grep" command to view the value of the TIF_SIGPENDING
> macro in the kernel source code, and modify the wrong value in
> the defs.h file.

Thank you for the report, good catch!

Those are not wrong values, just have not been updated to the current values..
For example, with regard to mips (including mips64?), it was changed at v2.6.23:

$ git grep '^#define TIF_SIGPENDING' v2.6.22:include/asm-mips
v2.6.22:include/asm-mips:thread_info.h:#define TIF_SIGPENDING           2       /* signal pending */
$ git grep '^#define TIF_SIGPENDING' v2.6.23:include/asm-mips
v2.6.23:include/asm-mips:thread_info.h:#define TIF_SIGPENDING           1       /* signal pending */

As far as I've checked, those were changed respectively:

ARM     2 -> 0  at v2.6.23
MIPS    2 -> 1  at v2.6.23
MIPS64  2 -> 1  at v2.6.23
PPC     2 -> 1  at v2.6.23
IA64    1 -> 0  at v2.6.23
PPC64   2 -> 1  at v2.6.23
S390    2 -> 1  at v3.16
S390X   2 -> 1  at v3.16

So how about something like this?

#define TIF_SIGPENDING  (THIS_KERNEL_VERSION >= LINUX(2,6,23) ? 0 : 2)

Thanks,
Kazu

> 
> Signed-off-by: Youling Tang <tangyouling at loongson.cn>
> ---
>  defs.h | 16 ++++++++--------
>  1 file changed, 8 insertions(+), 8 deletions(-)
> 
> diff --git a/defs.h b/defs.h
> index 396d61a..cd24107 100644
> --- a/defs.h
> +++ b/defs.h
> @@ -2997,7 +2997,7 @@ typedef struct QEMUCPUState QEMUCPUState;
>  #define __swp_type(entry)	SWP_TYPE(entry)
>  #define __swp_offset(entry)	SWP_OFFSET(entry)
> 
> -#define TIF_SIGPENDING		(2)
> +#define TIF_SIGPENDING		(0)
> 
>  #define _SECTION_SIZE_BITS	28
>  #define _MAX_PHYSMEM_BITS	32
> @@ -3377,7 +3377,7 @@ struct arm64_stackframe {
>  #define __swp_type(entry)	SWP_TYPE(entry)
>  #define __swp_offset(entry)	SWP_OFFSET(entry)
> 
> -#define TIF_SIGPENDING		(2)
> +#define TIF_SIGPENDING		(1)
> 
>  #define _SECTION_SIZE_BITS	26
>  #define _MAX_PHYSMEM_BITS	32
> @@ -3416,7 +3416,7 @@ struct arm64_stackframe {
>  #define __swp_type(entry)       SWP_TYPE(entry)
>  #define __swp_offset(entry)     SWP_OFFSET(entry)
> 
> -#define TIF_SIGPENDING          (2)
> +#define TIF_SIGPENDING          (1)
> 
>  #define _SECTION_SIZE_BITS      28
>  #define _MAX_PHYSMEM_BITS       48
> @@ -3884,7 +3884,7 @@ struct machine_specific {
>  #define __swp_type(entry)   SWP_TYPE(entry)
>  #define __swp_offset(entry) SWP_OFFSET(entry)
> 
> -#define TIF_SIGPENDING (2)
> +#define TIF_SIGPENDING (1)
> 
>  #define _SECTION_SIZE_BITS	24
>  #define _MAX_PHYSMEM_BITS	44
> @@ -4079,7 +4079,7 @@ struct efi_memory_desc_t {
>  #define __swp_type(entry)    ((entry >> 2) & 0x7f)
>  #define __swp_offset(entry)  ((entry << 1) >> 10)
> 
> -#define TIF_SIGPENDING (1)
> +#define TIF_SIGPENDING (0)
> 
>  #define KERNEL_TR_PAGE_SIZE (1 << _PAGE_SIZE_64M)
>  #define KERNEL_TR_PAGE_MASK (~(KERNEL_TR_PAGE_SIZE - 1))
> @@ -4219,7 +4219,7 @@ struct efi_memory_desc_t {
>  #define PTE_RPN_MASK    (machdep->machspec->pte_rpn_mask)
>  #define PTE_RPN_SHIFT   (machdep->machspec->pte_rpn_shift)
> 
> -#define TIF_SIGPENDING (2)
> +#define TIF_SIGPENDING (1)
> 
>  #define SWP_TYPE(entry) (((entry) >> 1) & 0x7f)
>  #define SWP_OFFSET(entry) ((entry) >> 8)
> @@ -4259,7 +4259,7 @@ struct efi_memory_desc_t {
>  #define __swp_type(entry)   SWP_TYPE(entry)
>  #define __swp_offset(entry) SWP_OFFSET(entry)
> 
> -#define TIF_SIGPENDING (2)
> +#define TIF_SIGPENDING (1)
> 
>  #define _SECTION_SIZE_BITS	25
>  #define _MAX_PHYSMEM_BITS	31
> @@ -4284,7 +4284,7 @@ struct efi_memory_desc_t {
>  #define __swp_type(entry)  SWP_TYPE(entry)
>  #define __swp_offset(entry) SWP_OFFSET(entry)
> 
> -#define TIF_SIGPENDING (2)
> +#define TIF_SIGPENDING (1)
> 
>  #define _SECTION_SIZE_BITS	28
>  #define _MAX_PHYSMEM_BITS_OLD	42
> --
> 2.1.0





More information about the Crash-utility mailing list