summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZqiang <qiang1.zhang@intel.com>2022-11-10 10:30:13 +0300
committerPaul E. McKenney <paulmck@kernel.org>2023-01-04 04:49:22 +0300
commit66ea1029f9b839fbcc10d97ddc93a05c72b3acc1 (patch)
tree6c20b21e488fefea05f391df4536a42e10f1d02f
parent1b929c02afd37871d5afb9d498426f83432e71c2 (diff)
downloadlinux-66ea1029f9b839fbcc10d97ddc93a05c72b3acc1.tar.xz
srcu: Release early_srcu resources when no longer in use
Kernels built with the CONFIG_TREE_SRCU Kconfig option set and then booted with rcupdate.rcu_self_test=1 and srcutree.convert_to_big=1 will test Tree SRCU during early boot. The early_srcu structure's srcu_node array will be allocated when init_srcu_struct_fields() is invoked, but after the test completes this early_srcu structure will not be used. This commit therefore invokes cleanup_srcu_struct() to free that srcu_node structure. Signed-off-by: Zqiang <qiang1.zhang@intel.com> Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
-rw-r--r--kernel/rcu/update.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/kernel/rcu/update.c b/kernel/rcu/update.c
index f5e6a2f95a2a..a5b4abbee643 100644
--- a/kernel/rcu/update.c
+++ b/kernel/rcu/update.c
@@ -586,6 +586,7 @@ static int rcu_verify_early_boot_tests(void)
early_boot_test_counter++;
srcu_barrier(&early_srcu);
WARN_ON_ONCE(!poll_state_synchronize_srcu(&early_srcu, early_srcu_cookie));
+ cleanup_srcu_struct(&early_srcu);
}
if (rcu_self_test_counter != early_boot_test_counter) {
WARN_ON(1);