Re: [RFC PATCH 3/4] rculist.h: Fix parentheses around macro pointer parameter use

From: Steven Rostedt
Date: Fri May 05 2023 - 10:06:29 EST


On Thu, 4 May 2023 12:19:38 -0400
Joel Fernandes <joel@xxxxxxxxxxxxxxxxx> wrote:

> > void f(void)
> > {
> > struct test *t1;
> > struct test **t2 = &t1;
> >
> > list_for_each_entry_rcu((*t2), &testlist, node) { /* works */
> > //...
> > }
> > list_for_each_entry_rcu(*t2, &testlist, node) { /* broken */
> > //...
> > }
>
> Yeah it is not clear why anyone would ever want to use it like this.
> Why don't they just pass t1 to list_for_each_entry_rcu() ? I would
> rather it break them and they re-think their code ;).

Remember interfaces should not be enforcing policy unless it's key to the
way the interface works.

-- Steve