uprobes: misc cleanups/simplifications
Status from this message: The following commit has been merged into the perf/core branch of tip:
Get series with b4
b4 am [email protected]Versions newest first · linked by author and title
- v4 Latest9 patches 7 repliesApplied
- v25 patches 18 repliesSuperseded
- v12 patches 7 repliesSuperseded
Changes from the cover letter
- added the acks I got from Andrii, Masami, and Jiri
- new 4/9 patch from Jiri, fixes the unrelated bug in bpf_testmod
- adapt tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c to the API changes in 5/9 an 6/9
Patches in v4 Applied
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/9 | uprobes: document the usage of mm->mmap_lockkernel/ | +8 | 0 replies | |
| 2/9 | uprobes: is_trap_at_addr: don't use get_user_pages_remote()kernel/ | +1 | 0 replies | |
| 3/9 | uprobes: simplify error handling for alloc_uprobe()kernel/ | +1 | 0 replies | |
| 4/9 | selftests/bpf: fix uprobe.path leak in bpf_testmodtools/ | +1 | 0 replies | |
| 5/9 | uprobes: kill uprobe_register_refctr()include/ kernel/ kernel/ +2 more | +15 | 0 replies | |
| 6/9 | uprobes: make uprobe_register() return struct uprobe *include/ kernel/ kernel/ +2 more | +67 | 0 replies | |
| 7/9 | uprobes: change uprobe_register() to use uprobe_unregister() instead of __uprobe_unregister()kernel/ | +7 | 0 replies | |
| 8/9 | uprobes: fold __uprobe_unregister() into uprobe_unregister()kernel/ | +10 | 0 replies | |
| 9/9 | uprobes: shift put_uprobe() from delete_uprobe() to uprobe_unregister()kernel/ | +9 | 0 replies |
Reviews trailers per patch
8 of 9 patches have a Reviewed-by or Acked-by.
| Patch | Andrii Nakryiko | Masami Hiramatsu (Google) | Jiri Olsa |
|---|---|---|---|
| 1/9 | A-b | A-b | R-b |
| 2/9 | A-b | R-b | |
| 3/9 | R-b | R-b | |
| 4/9 | |||
| 5/9 | A-b | R-b | |
| 6/9 | R-b | ||
| 7/9 | A-b | A-b | R-b |
| 8/9 | A-b | A-b | R-b |
| 9/9 | A-b | A-b | R-b |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 3 reviewers.
Cover letter [PATCH v4 0/9] uprobes: misc cleanups/simplifications
(Andrii, I'll try to look at your new series on Weekend).
Changes:
- added the acks I got from Andrii, Masami, and Jiri
- new 4/9 patch from Jiri, fixes the unrelated bug in bpf_testmod
- adapt tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c to the API changes in 5/9 an 6/9
see the interdiff below.
Oleg.
---
include/linux/uprobes.h | 22 ++-- kernel/events/uprobes.c | 137 +++++++++------------ kernel/trace/bpf_trace.c | 25 ++-- kernel/trace/trace_uprobe.c | 31 ++--- .../selftests/bpf/bpf_testmod/bpf_testmod.c | 26 ++-- 5 files changed, 103 insertions(+), 138 deletions(-)
-------------------------------------------------------------------------------
tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c +13 -13
@@ -432,7 +432,7 @@ uprobe_ret_handler(struct uprobe_consumer *self, unsigned long func,struct testmod_uprobe {struct path path; -loff_t offset; +struct uprobe *uprobe;struct uprobe_consumer consumer; };
@@ -446,25 +446,25 @@ static int testmod_register_uprobe(loff_t offset) {int err = -EBUSY ; -if (uprobe.offset) +if (uprobe.uprobe)return -EBUSY ;mutex_lock (&testmod_uprobe_mutex); -if (uprobe.offset) +if (uprobe.uprobe) goto out; err =kern_path ("/proc/self/exe" ,LOOKUP_FOLLOW , &uprobe.path);if (err) goto out; - err =uprobe_register_refctr (d_real_inode (uprobe.path.dentry), - offset,0 , &uprobe.consumer); -if (err) + uprobe.uprobe =uprobe_register (d_real_inode (uprobe.path.dentry), + offset,0 , &uprobe.consumer); +if (IS_ERR (uprobe.uprobe)) { + err =PTR_ERR (uprobe.uprobe);path_put (&uprobe.path); -else - uprobe.offset = offset; - + uprobe.uprobe =NULL ; + } out:mutex_unlock (&testmod_uprobe_mutex);return err;
@@ -474,10 +474,10 @@ static void testmod_unregister_uprobe(void) {mutex_lock (&testmod_uprobe_mutex); -if (uprobe.offset) { -uprobe_unregister (d_real_inode (uprobe.path.dentry), - uprobe.offset, &uprobe.consumer); - uprobe.offset =0 ; +if (uprobe.uprobe) { +uprobe_unregister (uprobe.uprobe, &uprobe.consumer); +path_put (&uprobe.path); + uprobe.uprobe =NULL ; }mutex_unlock (&testmod_uprobe_mutex);