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