diff options
| author | Frederic Weisbecker <frederic@kernel.org> | 2024-01-12 16:46:16 +0100 |
|---|---|---|
| committer | Sasha Levin <sashal@kernel.org> | 2024-03-26 18:19:17 -0400 |
| commit | eba92d62cbc864e453545e5b154395066eecb9a3 (patch) | |
| tree | 94d618e47582972dfacbeaf35028edb6870bf7ab /kernel/rcu/tree.c | |
| parent | 6047cdf6fcce29c21c4c6524ebafbee65c7ed27c (diff) | |
| download | linux-eba92d62cbc864e453545e5b154395066eecb9a3.tar.gz linux-eba92d62cbc864e453545e5b154395066eecb9a3.tar.bz2 linux-eba92d62cbc864e453545e5b154395066eecb9a3.zip | |
rcu/exp: Handle RCU expedited grace period kworker allocation failure
[ Upstream commit e7539ffc9a770f36bacedcf0fbfb4bf2f244f4a5 ]
Just like is done for the kworker performing nodes initialization,
gracefully handle the possible allocation failure of the RCU expedited
grace period main kworker.
While at it perform a rename of the related checking functions to better
reflect the expedited specifics.
Reviewed-by: Kalesh Singh <kaleshsingh@google.com>
Fixes: 9621fbee44df ("rcu: Move expedited grace period (GP) work to RT kthread_worker")
Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
Reviewed-by: Paul E. McKenney <paulmck@kernel.org>
Signed-off-by: Boqun Feng <boqun.feng@gmail.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'kernel/rcu/tree.c')
| -rw-r--r-- | kernel/rcu/tree.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index 2e8d4572e862..8cf6a6fef796 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -4671,6 +4671,7 @@ static void __init rcu_start_exp_gp_kworkers(void) rcu_exp_gp_kworker = kthread_create_worker(0, gp_kworker_name); if (IS_ERR_OR_NULL(rcu_exp_gp_kworker)) { pr_err("Failed to create %s!\n", gp_kworker_name); + rcu_exp_gp_kworker = NULL; return; } @@ -4679,6 +4680,7 @@ static void __init rcu_start_exp_gp_kworkers(void) pr_err("Failed to create %s!\n", par_gp_kworker_name); rcu_exp_par_gp_kworker = NULL; kthread_destroy_worker(rcu_exp_gp_kworker); + rcu_exp_gp_kworker = NULL; return; } |
