aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@linux.ibm.com>2018-10-22 08:33:06 -0700
committerPaul E. McKenney <paulmck@linux.ibm.com>2018-11-12 08:15:59 -0800
commitf0ad56e876cdd67730065274625edbcfe0cca278 (patch)
treed29ef247705f788e9b9b148da3e2d1f020b95621
parentrcu: Eliminate BUG_ON() for kernel/rcu/tree_plugin.h (diff)
downloadlinux-dev-f0ad56e876cdd67730065274625edbcfe0cca278.tar.xz
linux-dev-f0ad56e876cdd67730065274625edbcfe0cca278.zip
rcu: Eliminate BUG_ON() for kernel/rcu/update.c
The update.c file has a number of calls to BUG_ON(), which panics the kernel, which is not a good strategy for devices (like embedded) that don't have a way to capture console output. This commit therefore converts these BUG_ON() calls to WARN_ON_ONCE() and WARN_ONCE(). Reported-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Paul E. McKenney <paulmck@linux.ibm.com>
-rw-r--r--kernel/rcu/update.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/kernel/rcu/update.c b/kernel/rcu/update.c
index f203b94f6b5b..cb26de25658a 100644
--- a/kernel/rcu/update.c
+++ b/kernel/rcu/update.c
@@ -822,7 +822,8 @@ static int __init rcu_spawn_tasks_kthread(void)
struct task_struct *t;
t = kthread_run(rcu_tasks_kthread, NULL, "rcu_tasks_kthread");
- BUG_ON(IS_ERR(t));
+ if (WARN_ONCE(IS_ERR(t), "%s: Could not start Tasks-RCU grace-period kthread, OOM is now expected behavior\n", __func__))
+ return 0;
smp_mb(); /* Ensure others see full kthread. */
WRITE_ONCE(rcu_tasks_kthread_ptr, t);
return 0;