]> git.kernelconcepts.de Git - karo-tx-linux.git/commit
rcu: Move preemption disabling out of __srcu_read_lock()
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Tue, 1 Sep 2015 07:42:57 +0000 (00:42 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Tue, 6 Oct 2015 18:15:43 +0000 (11:15 -0700)
commit49f5903b473c5f63f3b57856d1bd4593db0a2eef
tree99ac386a68b59fea8b9e26ce38d3d05df90da20e
parent7f21aeef722d598ba350d1834f6e4134c7b5e8de
rcu: Move preemption disabling out of __srcu_read_lock()

Currently, __srcu_read_lock() cannot be invoked from restricted
environments because it contains calls to preempt_disable() and
preempt_enable(), both of which can invoke lockdep, which is a bad
idea in some restricted execution modes.  This commit therefore moves
the preempt_disable() and preempt_enable() from __srcu_read_lock()
to srcu_read_lock().  It also inserts the preempt_disable() and
preempt_enable() around the call to __srcu_read_lock() in do_exit().

Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
include/linux/srcu.h
kernel/exit.c
kernel/rcu/srcu.c