srcu: Prohibit call_srcu() use under raw spinlocks
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Tue, 10 Oct 2017 20:52:30 +0000 (13:52 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Tue, 28 Nov 2017 23:52:33 +0000 (15:52 -0800)
commitd633198088bd9e358566c470ed182994403acc7a
tree41a5a7824e5e52f81c5c7a8794e80c6b5bd62834
parent4fbd8d194f06c8a3fd2af1ce560ddb31f7ec8323
srcu: Prohibit call_srcu() use under raw spinlocks

Invoking queue_delayed_work() while holding a raw spinlock is forbidden
in -rt kernels, which is exactly what __call_srcu() does, indirectly via
srcu_funnel_gp_start().  This commit therefore downgrades Tree SRCU's
locking from raw to non-raw spinlocks, which works because call_srcu()
is not ever called while holding a raw spinlock.

Reported-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
include/linux/srcutree.h
kernel/rcu/srcutree.c