diff options
author | Frank Rowand <frowand.list@gmail.com> | 2023-02-13 12:57:01 -0600 |
---|---|---|
committer | Rob Herring <robh@kernel.org> | 2023-02-20 15:37:19 -0600 |
commit | ec0b7e24d566a843e3cfba21a6471170fdb0f810 (patch) | |
tree | fdb2db20af328846479dca1267ef77ad9f73b23c /drivers/of | |
parent | 23522dd7033ad8dcd818f75469907a8fdac8e8a4 (diff) | |
download | linux-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.c | 4 |
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)); |