[PATCH V4 1/3] of: introduce for_each_matching_node_and_match()

Grant Likely grant.likely at secretlab.ca
Wed Nov 21 05:06:16 EST 2012

On Wed, Nov 21, 2012 at 9:53 AM, Arnd Bergmann <arnd at arndb.de> 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 at nvidia.com>
> 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.


More information about the linux-arm-kernel mailing list