| From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 |
| From: Saravana Kannan <saravanak@google.com> |
| Date: Wed, 20 Nov 2019 00:02:29 -0800 |
| Subject: UPSTREAM: of: property: Fix the semantics of of_is_ancestor_of() |
| |
| The of_is_ancestor_of() function was renamed from of_link_is_valid() |
| based on review feedback. The rename meant the semantics of the function |
| had to be inverted, but this was missed in the earlier patch. |
| |
| So, fix the semantics of of_is_ancestor_of() and invert the conditional |
| expressions where it is used. |
| |
| Fixes: a3e1d1a7f5fc ("of: property: Add functional dependency link from DT bindings") |
| Signed-off-by: Saravana Kannan <saravanak@google.com> |
| Link: https://lore.kernel.org/r/20191120080230.16007-1-saravanak@google.com |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| (cherry-picked from 3883539140b8ce67ad000938c3cd3b3e59498520) |
| Change-Id: I6ba531820df33c6a555990e02c08d96820ed8a4f |
| --- |
| drivers/of/property.c | 6 +++--- |
| 1 file changed, 3 insertions(+), 3 deletions(-) |
| |
| diff --git a/drivers/of/property.c b/drivers/of/property.c |
| index bff44d49519e..0112e7e4b8aa 100644 |
| --- a/drivers/of/property.c |
| +++ b/drivers/of/property.c |
| @@ -993,11 +993,11 @@ static bool of_is_ancestor_of(struct device_node *test_ancestor, |
| while (child) { |
| if (child == test_ancestor) { |
| of_node_put(child); |
| - return false; |
| + return true; |
| } |
| child = of_get_next_parent(child); |
| } |
| - return true; |
| + return false; |
| } |
| |
| /** |
| @@ -1043,7 +1043,7 @@ static int of_link_to_phandle(struct device *dev, struct device_node *sup_np, |
| * descendant nodes. By definition, a child node can't be a functional |
| * dependency for the parent node. |
| */ |
| - if (!of_is_ancestor_of(dev->of_node, sup_np)) { |
| + if (of_is_ancestor_of(dev->of_node, sup_np)) { |
| dev_dbg(dev, "Not linking to %pOFP - is descendant\n", sup_np); |
| of_node_put(sup_np); |
| return -EINVAL; |