Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

+2 -1
+2 -1
kernel/rcu/update.c
··· 822 822 struct task_struct *t; 823 823 824 824 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; 826 827 smp_mb(); /* Ensure others see full kthread. */ 827 828 WRITE_ONCE(rcu_tasks_kthread_ptr, t); 828 829 return 0;