diff options
| author | Breno Leitao <[email protected]> | 2025-04-10 12:22:21 +0000 |
|---|---|---|
| committer | Masami Hiramatsu (Google) <[email protected]> | 2025-05-09 23:28:02 +0000 |
| commit | 9dda18a32b4a6693fccd3f7c0738af646147b1cf (patch) | |
| tree | ea4cbfde15cec674d2f6fb306fd95275e633807f /tools/testing/selftests/drivers/net/hw/lib/py/linkconfig.py | |
| parent | Merge tag 'rust-fixes-6.15-2' of git://git.kernel.org/pub/scm/linux/kernel/gi... (diff) | |
| download | kernel-9dda18a32b4a6693fccd3f7c0738af646147b1cf.tar.gz kernel-9dda18a32b4a6693fccd3f7c0738af646147b1cf.zip | |
tracing: fprobe: Fix RCU warning message in list traversal
When CONFIG_PROVE_RCU_LIST is enabled, fprobe triggers the following
warning:
WARNING: suspicious RCU usage
kernel/trace/fprobe.c:457 RCU-list traversed in non-reader section!!
other info that might help us debug this:
#1: ffffffff863c4e08 (fprobe_mutex){+.+.}-{4:4}, at: fprobe_module_callback+0x7b/0x8c0
Call Trace:
fprobe_module_callback
notifier_call_chain
blocking_notifier_call_chain
This warning occurs because fprobe_remove_node_in_module() traverses an
RCU list using RCU primitives without holding an RCU read lock. However,
the function is only called from fprobe_module_callback(), which holds
the fprobe_mutex lock that provides sufficient protection for safely
traversing the list.
Fix the warning by specifying the locking design to the
CONFIG_PROVE_RCU_LIST mechanism. Add the lockdep_is_held() argument to
hlist_for_each_entry_rcu() to inform the RCU checker that fprobe_mutex
provides the required protection.
Link: https://lore.kernel.org/all/[email protected]/
Fixes: a3dc2983ca7b90 ("tracing: fprobe: Cleanup fprobe hash when module unloading")
Signed-off-by: Breno Leitao <[email protected]>
Tested-by: Antonio Quartulli <[email protected]>
Tested-by: Matthieu Baerts (NGI0) <[email protected]>
Signed-off-by: Masami Hiramatsu (Google) <[email protected]>
Diffstat (limited to 'tools/testing/selftests/drivers/net/hw/lib/py/linkconfig.py')
0 files changed, 0 insertions, 0 deletions
