History

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().

Paul E. McKenney committed 8 years ago

Commit f0ad56e1 parent 92137841 file · +2 −1Browse files

Unified · Split

kernel/rcu/update.c+2−1
@@ -822,7 +822,8 @@ static int __init rcu_spawn_tasks_kthread(void) · 821 unmodified lines
822822 struct task_struct *t;
823823
824824 t = kthread_run(rcu_tasks_kthread, NULL, "rcu_tasks_kthread");
825− BUG_ON(IS_ERR(t));
825+ if (WARN_ONCE(IS_ERR(t), "%s: Could not start Tasks-RCU grace-period kthread, OOM is now expected behavior\n", __func__))
826+ return 0;
826827 smp_mb(); /* Ensure others see full kthread. */
827828 WRITE_ONCE(rcu_tasks_kthread_ptr, t);
828829 return 0;