Re: [PATCH v13 01/12] kprobes: Protect kprobe_blacklist with RCU
| Newsgroups | org.kernel.vger.linux-perf-users,org.kernel.vger.linux-trace-kernel |
|---|---|
| Message-ID | <[email protected]> |
> From: Masami Hiramatsu (Google) <[email protected]> > > __within_kprobe_blacklist() traverses kprobe_blacklist without holding > kprobe_mutex. When a module is unloaded, kprobe_remove_area_blacklist() > removes blacklist entries and immediately frees them with kfree(). > A concurrent call to within_kprobe_blacklist() can therefore dereference > freed memory. > > Furthermore, within_kprobe_blacklist() can be called in atomic or > non-preemptible contexts where the sleeping kprobe_mutex cannot be taken. > > Protect kprobe_blacklist with RCU. Use guard(rcu)() and > list_for_each_entry_rcu() for traversal, list_add_tail_rcu() for > insertions, list_del_rcu() for deletions, and kfree_rcu() to reclaim > entries safely after a grace period. > > Assisted-by: Antigravity:gemini-3.7-flash > Signed-off-by: Masami Hiramatsu (Google) <[email protected]> Sashiko has reviewed this patch and found no issues. It looks great! -- Sashiko AI review · https://sashiko.dev/#/patchset/178739053919.1520941.17662338993878200834.stgit@devnote2?part=1