On Wed, 21 Nov 2012 10:06:16 +0000, Grant Likely wrote: > On Wed, Nov 21, 2012 at 9:53 AM, Arnd Bergmann <arnd@xxxxxxxx> wrote: > > On Tuesday 20 November 2012, Stephen Warren wrote: > >> However, this results in iterating over table twice; the second time > >> inside of_match_node(). The implementation of for_each_matching_node() > >> already found the match, so this is redundant. Invent new function > >> of_find_matching_node_and_match() and macro > >> for_each_matching_node_and_match() to remove the double iteration, > >> thus transforming the above code to: > >> > >> for_each_matching_node_and_match(np, table, &match) > >> > >> Signed-off-by: Stephen Warren <swarren@xxxxxxxxxx> > > > > This look useful, but I wonder if the interface would make more sense if you > > make the last argument to the macro a normal pointer, rather than a > > pointer-to-pointer. You can take the reference as part of the macro. > > To me that makes for harder to understand code. It *looks* like an > argument to a normal function call, but it gets changed by the caller. Agreed. Too much magic is too much. Thomas -- Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com -- To unsubscribe from this list: send the line "unsubscribe linux-tegra" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html