diff options
Diffstat (limited to 'features/rt/rcu-Delay-RCU-selftests.patch')
-rw-r--r-- | features/rt/rcu-Delay-RCU-selftests.patch | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/features/rt/rcu-Delay-RCU-selftests.patch b/features/rt/rcu-Delay-RCU-selftests.patch new file mode 100644 index 00000000..e6df57ca --- /dev/null +++ b/features/rt/rcu-Delay-RCU-selftests.patch @@ -0,0 +1,75 @@ +From 520c1da6a6bdb335171681b90eacfe32d394f358 Mon Sep 17 00:00:00 2001 +From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> +Date: Wed, 10 Mar 2021 15:09:02 +0100 +Subject: [PATCH 130/191] rcu: Delay RCU-selftests + +Delay RCU-selftests until ksoftirqd is up and running. + +Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> +--- + init/main.c | 7 +++++++ + kernel/rcu/tasks.h | 9 ++------- + 2 files changed, 9 insertions(+), 7 deletions(-) + +diff --git a/init/main.c b/init/main.c +index 608a8b27fabe..5bb42b4bbf59 100644 +--- a/init/main.c ++++ b/init/main.c +@@ -1511,6 +1511,12 @@ void __init console_on_rootfs(void) + fput(file); + } + ++#ifdef CONFIG_PROVE_RCU ++void rcu_tasks_initiate_self_tests(void); ++#else ++static inline void rcu_tasks_initiate_self_tests(void) {} ++#endif ++ + static noinline void __init kernel_init_freeable(void) + { + #ifndef CONFIG_BLK_DEV_INITRD +@@ -1539,6 +1545,7 @@ static noinline void __init kernel_init_freeable(void) + + rcu_init_tasks_generic(); + do_pre_smp_initcalls(); ++ rcu_tasks_initiate_self_tests(); + lockup_detector_init(); + + smp_init(); +diff --git a/kernel/rcu/tasks.h b/kernel/rcu/tasks.h +index af7c19439f4e..3384c0bc6b21 100644 +--- a/kernel/rcu/tasks.h ++++ b/kernel/rcu/tasks.h +@@ -1259,7 +1259,7 @@ static void test_rcu_tasks_callback(struct rcu_head *rhp) + rttd->notrun = true; + } + +-static void rcu_tasks_initiate_self_tests(void) ++void rcu_tasks_initiate_self_tests(void) + { + pr_info("Running RCU-tasks wait API self tests\n"); + #ifdef CONFIG_TASKS_RCU +@@ -1296,9 +1296,7 @@ static int rcu_tasks_verify_self_tests(void) + return ret; + } + late_initcall(rcu_tasks_verify_self_tests); +-#else /* #ifdef CONFIG_PROVE_RCU */ +-static void rcu_tasks_initiate_self_tests(void) { } +-#endif /* #else #ifdef CONFIG_PROVE_RCU */ ++#endif /* #ifdef CONFIG_PROVE_RCU */ + + void __init rcu_init_tasks_generic(void) + { +@@ -1313,9 +1311,6 @@ void __init rcu_init_tasks_generic(void) + #ifdef CONFIG_TASKS_TRACE_RCU + rcu_spawn_tasks_trace_kthread(); + #endif +- +- // Run the self-tests. +- rcu_tasks_initiate_self_tests(); + } + + #else /* #ifdef CONFIG_TASKS_RCU_GENERIC */ +-- +2.19.1 + |