summaryrefslogtreecommitdiffstats
path: root/kernel/rcu
diff options
context:
space:
mode:
authorAlexei Starovoitov <ast@plumgrid.com>2015-06-16 10:35:18 -0700
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2015-07-22 15:27:31 -0700
commit46f00d18fca42cc954c2e9e99a48b6f3a7741ed7 (patch)
tree9f9eced5cfe86284498ee2f7541fb1920eabe367 /kernel/rcu
parent779de6ce54f627f955d4a3d0c5b3dcfaab74fea8 (diff)
downloadlinux-46f00d18fca42cc954c2e9e99a48b6f3a7741ed7.tar.gz
linux-46f00d18fca42cc954c2e9e99a48b6f3a7741ed7.tar.bz2
linux-46f00d18fca42cc954c2e9e99a48b6f3a7741ed7.zip
rcu: Make rcu_is_watching() really notrace
Although rcu_is_watching() is marked notrace, it invokes preempt_disable() and preempt_enable(), both of which can be traced. This defeats the purpose of the notrace on rcu_is_watching(), so this commit substitutes preempt_disable_notrace() and preempt_enable_notrace(). Signed-off-by: Alexei Starovoitov <ast@plumgrid.com> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Acked-by: Steven Rostedt <rostedt@goodmis.org>
Diffstat (limited to 'kernel/rcu')
-rw-r--r--kernel/rcu/tree.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
index 9629298eea24..cb64d7e13d24 100644
--- a/kernel/rcu/tree.c
+++ b/kernel/rcu/tree.c
@@ -978,9 +978,9 @@ bool notrace rcu_is_watching(void)
{
bool ret;
- preempt_disable();
+ preempt_disable_notrace();
ret = __rcu_is_watching();
- preempt_enable();
+ preempt_enable_notrace();
return ret;
}
EXPORT_SYMBOL_GPL(rcu_is_watching);