aboutsummaryrefslogtreecommitdiff
path: root/kernel/trace/trace_uprobe.c
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2024-12-20 14:09:45 +0100
committerTakashi Iwai <tiwai@suse.de>2024-12-20 14:09:45 +0100
commit8cbd01ba9c38eb16f3a572300da486ac544519b7 (patch)
treee9a800bcb96bf8e937ddf0d420514dccbc6c1a75 /kernel/trace/trace_uprobe.c
parent66a0a2b0473c39ae85c44628d14e4366fdc0aa0d (diff)
parent32c9c06adb5b157ef259233775a063a43746d699 (diff)
downloadlinux-8cbd01ba9c38eb16f3a572300da486ac544519b7.tar.gz
linux-8cbd01ba9c38eb16f3a572300da486ac544519b7.tar.bz2
linux-8cbd01ba9c38eb16f3a572300da486ac544519b7.zip
Merge tag 'asoc-fix-v6.13-rc3' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
ASoC: Fixes for v6.13 A mix of quirks and small fixes, nothing too major anywhere.
Diffstat (limited to 'kernel/trace/trace_uprobe.c')
-rw-r--r--kernel/trace/trace_uprobe.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/kernel/trace/trace_uprobe.c b/kernel/trace/trace_uprobe.c
index fed382b7881b..4875e7f5de3d 100644
--- a/kernel/trace/trace_uprobe.c
+++ b/kernel/trace/trace_uprobe.c
@@ -1402,9 +1402,13 @@ static void __uprobe_perf_func(struct trace_uprobe *tu,
#ifdef CONFIG_BPF_EVENTS
if (bpf_prog_array_valid(call)) {
+ const struct bpf_prog_array *array;
u32 ret;
- ret = bpf_prog_run_array_uprobe(call->prog_array, regs, bpf_prog_run);
+ rcu_read_lock_trace();
+ array = rcu_dereference_check(call->prog_array, rcu_read_lock_trace_held());
+ ret = bpf_prog_run_array_uprobe(array, regs, bpf_prog_run);
+ rcu_read_unlock_trace();
if (!ret)
return;
}