On Tue, Aug 22, 2017 at 10:00 AM, Niklas Söderlund <niklas.soderlund@xxxxxxxxxxxx> wrote: > Hi Rob, > > On 2017-08-22 09:49:35 -0500, Rob Herring wrote: >> On Mon, Aug 21, 2017 at 7:19 PM, Niklas Söderlund >> <niklas.soderlund+renesas@xxxxxxxxxxxx> wrote: >> > Using CONFIG_OF_DYNAMIC=y uncovered an imbalance in the usecount of the >> > node being passed to of_fwnode_graph_get_port_parent(). Preserve the >> > usecount by using of_get_parent() instead of of_get_next_parent() which >> > don't decrement the usecount of the node passed to it. >> > >> > Fixes: 3b27d00e7b6d7c88 ("device property: Move fwnode graph ops to firmware specific locations") >> > Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@xxxxxxxxxxxx> >> > Acked-by: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx> >> > --- >> > drivers/of/property.c | 2 +- >> > 1 file changed, 1 insertion(+), 1 deletion(-) >> >> Isn't this already fixed with this fix: >> >> commit c0a480d1acf7dc184f9f3e7cf724483b0d28dc2e >> Author: Tony Lindgren <tony@xxxxxxxxxxx> >> Date: Fri Jul 28 01:23:15 2017 -0700 >> >> device property: Fix usecount for of_graph_get_port_parent() > > No, that commit fixes it for of_graph_get_port_parent() while this > commit fixes it for of_fwnode_graph_get_port_parent(). But in essence it > is the same issue but needs two separate fixes. Ah, because one takes the port node and one takes the endpoint node. That won't confuse anyone. Can we please align this mess. I've tried to make the graph parsing not a free for all, open coded mess. There's no reason to have the port node handle and then need the parent device. Either you started with the parent device to parse local ports and endpoints or you got the remote endpoint with .graph_get_remote_endpoint(). Most of the time you don't even need the endpoint node handles. You really just need to know what is the remote device connected to port X, endpoint Y of my local device. Rob