]> git.karo-electronics.de Git - karo-tx-linux.git/commit
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>
Tue, 31 Jul 2012 18:34:19 +0000 (11:34 -0700)
commitf1b00a315d106b282446762bf5c3f812a163ea1c
treeceaa1ea4a75679541f8e4ee888eefa937ca81877
parentcf1cb4ede278e75e6b3d690ac0335f2ce5ccd87f
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.

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
kernel/rcutree.c