summaryrefslogtreecommitdiff
path: root/drivers/of
diff options
context:
space:
mode:
authorFrank Rowand <frank.rowand@sony.com>2020-04-16 16:42:47 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2020-04-23 10:36:23 +0200
commita1371954ee497836720138b2a90db873c35dff2c (patch)
tree75fd4f3cf28a21f0be844ea20c84f9b6200dc68b /drivers/of
parentdd3dd28241e02a88553e6676a18736e2cdfbaa4f (diff)
downloadlinux-a1371954ee497836720138b2a90db873c35dff2c.tar.gz
linux-a1371954ee497836720138b2a90db873c35dff2c.tar.bz2
linux-a1371954ee497836720138b2a90db873c35dff2c.zip
of: unittest: kmemleak in of_unittest_platform_populate()
commit 216830d2413cc61be3f76bc02ffd905e47d2439e upstream. kmemleak reports several memory leaks from devicetree unittest. This is the fix for problem 2 of 5. of_unittest_platform_populate() left an elevated reference count for grandchild nodes (which are platform devices). Fix the platform device reference counts so that the memory will be freed. Fixes: fb2caa50fbac ("of/selftest: add testcase for nodes with same name and address") Reported-by: Erhard F. <erhard_f@mailbox.org> Signed-off-by: Frank Rowand <frank.rowand@sony.com> Signed-off-by: Rob Herring <robh@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/of')
-rw-r--r--drivers/of/unittest.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/of/unittest.c b/drivers/of/unittest.c
index 134c3d0776f9..b4cd0b3ff01d 100644
--- a/drivers/of/unittest.c
+++ b/drivers/of/unittest.c
@@ -1065,10 +1065,13 @@ static void __init of_unittest_platform_populate(void)
of_platform_populate(np, match, NULL, &test_bus->dev);
for_each_child_of_node(np, child) {
- for_each_child_of_node(child, grandchild)
- unittest(of_find_device_by_node(grandchild),
+ for_each_child_of_node(child, grandchild) {
+ pdev = of_find_device_by_node(grandchild);
+ unittest(pdev,
"Could not create device for node '%pOFn'\n",
grandchild);
+ of_dev_put(pdev);
+ }
}
of_platform_depopulate(&test_bus->dev);