Hi, Kazu

On 06/03/2021 03:14 PM, HAGIO KAZUHITO(萩尾 一仁) wrote:
-----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)
Thank you for your correction, I will send v2.

Taking MIPS as an example, the definition is changed to the following:

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


Thanks,
Youling

Thanks,
Kazu

Signed-off-by: Youling Tang <tangyouling@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