rcu: Permit RCU_NONIDLE() to be used from interrupt context
authorPaul E. McKenney <paul.mckenney@linaro.org>
Tue, 31 Jul 2012 17:12:48 +0000 (10:12 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Sun, 23 Sep 2012 14:42:49 +0000 (07:42 -0700)
commitb4270ee356e5ecef5394ab80c0a0301c1676b7f0
treed600c6dcea20363414220b9b369832af97a8a090
parent1e3fd2b38cea41f5386bf23440f2cbdd74cf13d0
rcu: Permit RCU_NONIDLE() to be used from interrupt context

There is a need to use RCU from interrupt context, but either before
rcu_irq_enter() is called or after rcu_irq_exit() is called.  If the
interrupt occurs from idle, then lockdep-RCU will complain about such
uses, as they appear to be illegal uses of RCU from the idle loop.
In other environments, RCU_NONIDLE() could be used to properly protect
the use of RCU, but RCU_NONIDLE() currently cannot be invoked except
from process context.

This commit therefore modifies RCU_NONIDLE() to permit its use more
globally.

Reported-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Paul E. McKenney <paul.mckenney@linaro.org>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
include/linux/rcupdate.h
kernel/rcutiny.c