]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
s390: Use generic TIF bits
authorThomas Gleixner <tglx@linutronix.de>
Mon, 8 Sep 2025 21:32:34 +0000 (23:32 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Wed, 17 Sep 2025 06:14:04 +0000 (08:14 +0200)
No point in defining generic items and the upcoming RSEQ optimizations are
only available with this _and_ the generic entry infrastructure, which is
already used by s390. So no further action required here.

This leaves a comment about the AUDIT/TRACE/SECCOMP bits which are handled
by SYSCALL_WORK in the generic code, so they seem redundant, but that's a
problem for the s390 wizards to think about.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Heiko Carstens <hca@linux.ibm.com>
arch/s390/Kconfig
arch/s390/include/asm/thread_info.h

index bf680c26a33cf7bef2ed5e25cabc061597c131b1..f991ab92e3912d8801759a4096d057837986ea51 100644 (file)
@@ -199,6 +199,7 @@ config S390
        select HAVE_DYNAMIC_FTRACE_WITH_REGS
        select HAVE_EBPF_JIT if HAVE_MARCH_Z196_FEATURES
        select HAVE_EFFICIENT_UNALIGNED_ACCESS
+       select HAVE_GENERIC_TIF_BITS
        select HAVE_GUP_FAST
        select HAVE_FENTRY
        select HAVE_FTRACE_GRAPH_FUNC
index f6ed2c8192c87c35bf1b99cf5527047e5494dd25..fe6da066b123a1d7df7a6fc6c77ab5878324c611 100644 (file)
@@ -56,43 +56,35 @@ void arch_setup_new_exec(void);
 
 /*
  * thread information flags bit numbers
+ *
+ * Tell the generic TIF infrastructure which special bits s390 supports
  */
-#define TIF_NOTIFY_RESUME      0       /* callback before returning to user */
-#define TIF_SIGPENDING         1       /* signal pending */
-#define TIF_NEED_RESCHED       2       /* rescheduling necessary */
-#define TIF_NEED_RESCHED_LAZY  3       /* lazy rescheduling needed */
-#define TIF_UPROBE             4       /* breakpointed or single-stepping */
-#define TIF_PATCH_PENDING      5       /* pending live patching update */
-#define TIF_ASCE_PRIMARY       6       /* primary asce is kernel asce */
-#define TIF_NOTIFY_SIGNAL      7       /* signal notifications exist */
-#define TIF_GUARDED_STORAGE    8       /* load guarded storage control block */
-#define TIF_ISOLATE_BP_GUEST   9       /* Run KVM guests with isolated BP */
-#define TIF_PER_TRAP           10      /* Need to handle PER trap on exit to usermode */
-#define TIF_31BIT              16      /* 32bit process */
-#define TIF_MEMDIE             17      /* is terminating due to OOM killer */
-#define TIF_RESTORE_SIGMASK    18      /* restore signal mask in do_signal() */
-#define TIF_SINGLE_STEP                19      /* This task is single stepped */
-#define TIF_BLOCK_STEP         20      /* This task is block stepped */
-#define TIF_UPROBE_SINGLESTEP  21      /* This task is uprobe single stepped */
+#define HAVE_TIF_NEED_RESCHED_LAZY
+#define HAVE_TIF_RESTORE_SIGMASK
+
+#include <asm-generic/thread_info_tif.h>
+
+/* Architecture specific bits */
+#define TIF_ASCE_PRIMARY       16      /* primary asce is kernel asce */
+#define TIF_GUARDED_STORAGE    17      /* load guarded storage control block */
+#define TIF_ISOLATE_BP_GUEST   18      /* Run KVM guests with isolated BP */
+#define TIF_PER_TRAP           19      /* Need to handle PER trap on exit to usermode */
+#define TIF_31BIT              20      /* 32bit process */
+#define TIF_SINGLE_STEP                21      /* This task is single stepped */
+#define TIF_BLOCK_STEP         22      /* This task is block stepped */
+#define TIF_UPROBE_SINGLESTEP  23      /* This task is uprobe single stepped */
+
+/* These could move over to SYSCALL_WORK bits, no? */
 #define TIF_SYSCALL_TRACE      24      /* syscall trace active */
 #define TIF_SYSCALL_AUDIT      25      /* syscall auditing active */
 #define TIF_SECCOMP            26      /* secure computing */
 #define TIF_SYSCALL_TRACEPOINT 27      /* syscall tracepoint instrumentation */
 
-#define _TIF_NOTIFY_RESUME     BIT(TIF_NOTIFY_RESUME)
-#define _TIF_SIGPENDING                BIT(TIF_SIGPENDING)
-#define _TIF_NEED_RESCHED      BIT(TIF_NEED_RESCHED)
-#define _TIF_NEED_RESCHED_LAZY BIT(TIF_NEED_RESCHED_LAZY)
-#define _TIF_UPROBE            BIT(TIF_UPROBE)
-#define _TIF_PATCH_PENDING     BIT(TIF_PATCH_PENDING)
 #define _TIF_ASCE_PRIMARY      BIT(TIF_ASCE_PRIMARY)
-#define _TIF_NOTIFY_SIGNAL     BIT(TIF_NOTIFY_SIGNAL)
 #define _TIF_GUARDED_STORAGE   BIT(TIF_GUARDED_STORAGE)
 #define _TIF_ISOLATE_BP_GUEST  BIT(TIF_ISOLATE_BP_GUEST)
 #define _TIF_PER_TRAP          BIT(TIF_PER_TRAP)
 #define _TIF_31BIT             BIT(TIF_31BIT)
-#define _TIF_MEMDIE            BIT(TIF_MEMDIE)
-#define _TIF_RESTORE_SIGMASK   BIT(TIF_RESTORE_SIGMASK)
 #define _TIF_SINGLE_STEP       BIT(TIF_SINGLE_STEP)
 #define _TIF_BLOCK_STEP                BIT(TIF_BLOCK_STEP)
 #define _TIF_UPROBE_SINGLESTEP BIT(TIF_UPROBE_SINGLESTEP)