On Wed, Jan 28, 2026 at 09:23:45AM -0800, Andrii Nakryiko wrote: > On Wed, Jan 28, 2026 at 5:51 AM Oleg Nesterov <[email protected]> wrote: > > > > On 01/28, Breno Leitao wrote: > > > > > > The list_for_each_entry_rcu() in filter_chain() uses > > > rcu_read_lock_trace_held() as the lockdep condition, but the function > > > holds consumer_rwsem, not the RCU trace lock. > > > > > > This gives me the following output when running with some locking debug > > > option enabled: > > > > > > kernel/events/uprobes.c:1141 RCU-list traversed in non-reader section!! > > > filter_chain > > > register_for_each_vma > > > uprobe_unregister_nosync > > > __probe_event_disable > > > > > > Remove the incorrect lockdep condition since the rwsem provides > > > sufficient protection for the list traversal. > > > > I hope Andrii will recheck, but looks obviously correct to me. > > yeah, I did, and it also looks obviously correct to me, I didn't need > to use rcu flavor there in the first place, I think. > > Acked-by: Andrii Nakryiko <[email protected]> > > > > > > Fixes: 87195a1ee332a ("uprobes: switch to RCU Tasks Trace flavor for > > > better performance") > > > > This commit just change the __list_check_rcu() condition... > > > > Perhaps > > Fixes: cc01bd044e6a ("uprobes: travers uprobe's consumer list locklessly > > under SRCU protection") > > > > yep, this one is the earliest change adding unnecessary rcu flavor of > list_for_each_entry
Ack. I will respin with the correct "fixes" tag. --breno
