]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
s390: Support PREEMPT_DYNAMIC
authorHeiko Carstens <hca@linux.ibm.com>
Wed, 27 Nov 2024 16:17:12 +0000 (17:17 +0100)
committerHeiko Carstens <hca@linux.ibm.com>
Thu, 28 Nov 2024 13:12:04 +0000 (14:12 +0100)
Select HAVE_PREEMPT_DYNAMIC_KEY and add the pieces which are required to
support PREEMPT_DYNAMIC.

See commit 99cf983cc8bc ("sched/preempt: Add PREEMPT_DYNAMIC using static
keys") and commit 1b2d3451ee50 ("arm64: Support PREEMPT_DYNAMIC") for more
details.

Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
arch/s390/Kconfig
arch/s390/include/asm/preempt.h

index b7e1eec7903e7ec8749142e8786eb6aacccf87ca..da77f876ce5bd8bacc5f0ed04e04c689517965e1 100644 (file)
@@ -219,6 +219,7 @@ config S390
        select HAVE_PERF_EVENTS
        select HAVE_PERF_REGS
        select HAVE_PERF_USER_STACK_DUMP
+       select HAVE_PREEMPT_DYNAMIC_KEY
        select HAVE_REGS_AND_STACK_ACCESS_API
        select HAVE_RELIABLE_STACKTRACE
        select HAVE_RETHOOK
index 0cde7e2403736a31aab6614806a84badee8c79c9..2c29bdf1212722e4996e7d56a16386aafb06c307 100644 (file)
@@ -130,10 +130,24 @@ static __always_inline bool should_resched(int preempt_offset)
 #define init_idle_preempt_count(p, cpu)        do { } while (0)
 
 #ifdef CONFIG_PREEMPTION
-extern void preempt_schedule(void);
-#define __preempt_schedule() preempt_schedule()
-extern void preempt_schedule_notrace(void);
-#define __preempt_schedule_notrace() preempt_schedule_notrace()
+
+void preempt_schedule(void);
+void preempt_schedule_notrace(void);
+
+#ifdef CONFIG_PREEMPT_DYNAMIC
+
+void dynamic_preempt_schedule(void);
+void dynamic_preempt_schedule_notrace(void);
+#define __preempt_schedule()           dynamic_preempt_schedule()
+#define __preempt_schedule_notrace()   dynamic_preempt_schedule_notrace()
+
+#else /* CONFIG_PREEMPT_DYNAMIC */
+
+#define __preempt_schedule()           preempt_schedule()
+#define __preempt_schedule_notrace()   preempt_schedule_notrace()
+
+#endif /* CONFIG_PREEMPT_DYNAMIC */
+
 #endif /* CONFIG_PREEMPTION */
 
 #endif /* __ASM_PREEMPT_H */