rcu: Define rcu_irq_{enter,exit}() in terms of rcu_nmi_{enter,exit}()
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Tue, 3 Oct 2017 17:42:22 +0000 (10:42 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Mon, 27 Nov 2017 16:42:03 +0000 (08:42 -0800)
commit58721f5da4bcd5187566f4159a4fc88f70bf74f6
tree2223b1e8a89ff15021cc6b925ec070668939090a
parent6136d6e48a0138f6be5bb3427dbeb0ba07a546a4
rcu: Define rcu_irq_{enter,exit}() in terms of rcu_nmi_{enter,exit}()

RCU currently uses two different mechanisms for tracking irqs and NMIs.
This is unnecessary complexity: Given that NMIs can nest and given that
RCU's tracking handles such nesting, the NMI tracking mechanism can also
be used to track irqs.  This commit therefore defines rcu_irq_enter()
in terms of rcu_nmi_enter() and rcu_irq_exit() in terms of rcu_nmi_exit().

Unfortunately, callers must still distinguish between the irq and NMI
functions because additional actions are taken when an irq interrupts
idle or nohz_full usermode execution, and these actions cannot always
be taken from NMI handlers.

Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
kernel/rcu/tree.c