Skip to content

Commit

Permalink
UPSTREAM: of: property: Fix create device links for all child-supplie…
Browse files Browse the repository at this point in the history
…r dependencies

Upon adding a new device from a DT node, we scan its properties and its
children's properties in order to create a consumer/supplier
relationship between the device and the property provider.

That said, it's possible for some of the node's children to be disabled,
which will create links that'll never be fulfilled.

To get around this, use the for_each_available_child_of_node() function
instead of for_each_available_node() when iterating over the node's
children.

Fixes: d4387cd11741 ("of: property: Create device links for all child-supplier depencencies")
Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Reviewed-by: Saravana Kannan <saravanak@google.com>
Signed-off-by: Rob Herring <robh@kernel.org>
(cherry picked from commit ed3655729182a59b9bef1b564c6fc2dcbbbe954e)
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I729c42bb3ddc8ecff1e5e097a439d672faea1f89
  • Loading branch information
Nicolas Saenz Julienne authored and gregkh committed Nov 14, 2020
1 parent 6ac5a61 commit b01c286
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion drivers/of/property.c
Original file line number Diff line number Diff line change
Expand Up @@ -1323,7 +1323,7 @@ static int of_link_to_suppliers(struct device *dev,
if (of_link_property(dev, con_np, p->name))
ret = -ENODEV;

for_each_child_of_node(con_np, child)
for_each_available_child_of_node(con_np, child)
if (of_link_to_suppliers(dev, child) && !ret)
ret = -EAGAIN;

Expand Down

0 comments on commit b01c286

Please sign in to comment.