summaryrefslogtreecommitdiffstats
path: root/kernel/rcu/update.c
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2020-03-13 17:32:17 +0100
committerThomas Gleixner <tglx@linutronix.de>2020-05-19 15:51:20 +0200
commitff5c4f5cad33061b07c3fb9187506783c0f3cb66 (patch)
treea391cabc83847be6d88107ea9a1f95557988013e /kernel/rcu/update.c
parent0d00449c7a28a1514595630735df383dec606812 (diff)
downloadlinux-stable-ff5c4f5cad33061b07c3fb9187506783c0f3cb66.tar.gz
linux-stable-ff5c4f5cad33061b07c3fb9187506783c0f3cb66.tar.bz2
linux-stable-ff5c4f5cad33061b07c3fb9187506783c0f3cb66.zip
rcu/tree: Mark the idle relevant functions noinstr
These functions are invoked from context tracking and other places in the low level entry code. Move them into the .noinstr.text section to exclude them from instrumentation. Mark the places which are safe to invoke traceable functions with instrumentation_begin/end() so objtool won't complain. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Alexandre Chartre <alexandre.chartre@oracle.com> Acked-by: Peter Zijlstra <peterz@infradead.org> Acked-by: Paul E. McKenney <paulmck@kernel.org> Link: https://lkml.kernel.org/r/20200505134100.575356107@linutronix.de
Diffstat (limited to 'kernel/rcu/update.c')
-rw-r--r--kernel/rcu/update.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/kernel/rcu/update.c b/kernel/rcu/update.c
index 3ce63a91d956..84843adfd939 100644
--- a/kernel/rcu/update.c
+++ b/kernel/rcu/update.c
@@ -284,13 +284,12 @@ struct lockdep_map rcu_callback_map =
STATIC_LOCKDEP_MAP_INIT("rcu_callback", &rcu_callback_key);
EXPORT_SYMBOL_GPL(rcu_callback_map);
-int notrace debug_lockdep_rcu_enabled(void)
+noinstr int notrace debug_lockdep_rcu_enabled(void)
{
return rcu_scheduler_active != RCU_SCHEDULER_INACTIVE && debug_locks &&
current->lockdep_recursion == 0;
}
EXPORT_SYMBOL_GPL(debug_lockdep_rcu_enabled);
-NOKPROBE_SYMBOL(debug_lockdep_rcu_enabled);
/**
* rcu_read_lock_held() - might we be in RCU read-side critical section?