On Fri, May 18, 2018 at 6:56 PM, Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote: > On Fri, May 18, 2018 at 6:07 AM Roman Pen <roman.penyaev@xxxxxxxxxxxxxxxx> > wrote: > >> Function is going to be used in transport over RDMA module >> in subsequent patches. > > Does this really merit its own helper macro in a generic header? > > It honestly smells more like "just have an inline helper function that is > specific to rdma" to me. Particularly since it's probably just one specific > list where you want this oddly specific behavior. > > Also, if we really want a round-robin list traversal macro, this isn't the > way it should be implemented, I suspect, and it probably shouldn't be > RCU-specific to begin with. Hi Linus, Another one list_for_each_entry_rcu()-like macro I am aware of is used in block/blk-mq-sched.c, is called list_for_each_entry_rcu_rr(): https://elixir.bootlin.com/linux/v4.17-rc5/source/block/blk-mq-sched.c#L370 Can we do something generic with -rr semantics to cover both cases? -- Roman > > Side note: I notice that I should already have been more critical of even > the much simpler "list_next_or_null_rcu()" macro. The "documentation" > comment above the macro is pure and utter cut-and-paste garbage. > > Paul, mind giving this a look? > > Linus