diff options
| author | Arnd Bergmann <arnd@arndb.de> | 2026-08-10 09:27:22 +0200 |
|---|---|---|
| committer | Arnd Bergmann <arnd@arndb.de> | 2026-08-10 09:27:22 +0200 |
| commit | eedb69c7b457dde8f6caf114a9bcd8b6fb1bdb91 (patch) | |
| tree | 0083a5116cde511ac32312bf3ad0871e7051a211 /kernel/trace/trace_fprobe.c | |
| parent | b9a43aeabca0162b4a405c1c093e0764a549ba77 (diff) | |
| parent | 37397cf956dca69c1a0764b1a50994047d5e5367 (diff) | |
| download | linux-next-eedb69c7b457dde8f6caf114a9bcd8b6fb1bdb91.tar.gz linux-next-eedb69c7b457dde8f6caf114a9bcd8b6fb1bdb91.zip | |
Merge branch 'arm/fixes' into for-next
* arm/fixes: (953 commits)
Linux 7.2-rc7
ring-buffer: Fix crash passing ERR_PTR to kthread_stop()
ring-buffer: Initialise reader page order in rb_allocate_cpu_buffer()
ring-buffer: Prevent subbuf order change when resizing is disabled
ring-buffer: Prevent resizing of persistent ring buffer
ftrace: Fix off-by-one fentry site disable in ftrace_free_mem()
ring-buffer: Use current_context for safe per-CPU buffer swap
ftrace: Drop extra comma in trace_buffered_event_enable
ftrace: Protect direct_functions in update_ftrace_direct_mod
ftrace: Protect direct_functions in update_ftrace_direct_del
ftrace: Protect direct_functions in ftrace_find_rec_direct
eventfs: Use children field for rcu head and add memory barriers
eventfs: Fix use-after-free in eventfs_remove_rec()
fbdev: bitblit: bound-check glyph index in bit_cursor()
fbdev: Fix out-of-bounds access when rotating console after font resize
fbdev: core: Fix pointer desynchronization in fb_io_read()
fbdev: serialize mode sysfs access with lock_fb_info()
fbdev: clear fb_info->mode before deleting a videomode
fbdev: bound mode sysfs output to the sysfs buffer
powerpc/pseries: lparcfg - fix kbuf[] underflow
...
Diffstat (limited to 'kernel/trace/trace_fprobe.c')
| -rw-r--r-- | kernel/trace/trace_fprobe.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/kernel/trace/trace_fprobe.c b/kernel/trace/trace_fprobe.c index 9f5f08c0e7c2..3120403a5b60 100644 --- a/kernel/trace/trace_fprobe.c +++ b/kernel/trace/trace_fprobe.c @@ -1481,11 +1481,21 @@ static int enable_trace_fprobe(struct trace_event_call *call, list_for_each_entry(tf, trace_probe_probe_list(tp), tp.list) { ret = __register_trace_fprobe(tf); if (ret < 0) - return ret; + goto err; } } return 0; + +err: + /* Failed to enable one of them. Roll back all */ + list_for_each_entry(tf, trace_probe_probe_list(tp), tp.list) + __unregister_trace_fprobe(tf); + if (file) + trace_probe_remove_file(tp, file); + else + trace_probe_clear_flag(tp, TP_FLAG_PROFILE); + return ret; } /* |
