summaryrefslogtreecommitdiffstats
path: root/drivers/of
diff options
context:
space:
mode:
authorFrank Rowand <frowand.list@gmail.com>2023-02-13 12:57:01 -0600
committerRob Herring <robh@kernel.org>2023-02-20 15:37:19 -0600
commitec0b7e24d566a843e3cfba21a6471170fdb0f810 (patch)
treefdb2db20af328846479dca1267ef77ad9f73b23c /drivers/of
parent23522dd7033ad8dcd818f75469907a8fdac8e8a4 (diff)
downloadlinux-stable-ec0b7e24d566a843e3cfba21a6471170fdb0f810.tar.gz
linux-stable-ec0b7e24d566a843e3cfba21a6471170fdb0f810.tar.bz2
linux-stable-ec0b7e24d566a843e3cfba21a6471170fdb0f810.zip
of: add consistency check to of_node_release()
Add an additional consistency check to of_node_release(), which is called when the reference count of a devicetree node is decremented to zero. The node's children should have been deleted before the node is deleted so check that no children exist. Signed-off-by: Frank Rowand <frowand.list@gmail.com> Link: https://lore.kernel.org/r/20230213185702.395776-7-frowand.list@gmail.com Signed-off-by: Rob Herring <robh@kernel.org>
Diffstat (limited to 'drivers/of')
-rw-r--r--drivers/of/dynamic.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/of/dynamic.c b/drivers/of/dynamic.c
index dbcbc41f3465..657a65006056 100644
--- a/drivers/of/dynamic.c
+++ b/drivers/of/dynamic.c
@@ -377,6 +377,10 @@ void of_node_release(struct kobject *kobj)
__func__, node);
}
+ if (node->child)
+ pr_err("ERROR: %s() unexpected children for %pOF/%s\n",
+ __func__, node->parent, node->full_name);
+
property_list_free(node->properties);
property_list_free(node->deadprops);
fwnode_links_purge(of_fwnode_handle(node));