OSDN Git Service

ARM: ux500: add missing of_node_put()
authorNicholas Mc Guire <hofrat@osadl.org>
Sat, 13 Apr 2019 07:14:21 +0000 (09:14 +0200)
committerLinus Walleij <linus.walleij@linaro.org>
Tue, 23 Jul 2019 07:49:32 +0000 (09:49 +0200)
 of_find_compatible_node() returns a pointer with refcount incremented
so both in the error path as well as after usage in soc_info_populate()
respectively actually b8500_read_soc_id() an explicit of_node_put is
needed to release backupram.

Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org>
Fixes: commit 18a992787896 ("ARM: ux500: move soc_id driver to drivers/soc")
Acked-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/soc/ux500/ux500-soc-id.c

index ea5fd2e..d64feeb 100644 (file)
@@ -203,10 +203,13 @@ static int __init ux500_soc_device_init(void)
        ux500_setup_id();
 
        soc_dev_attr = kzalloc(sizeof(*soc_dev_attr), GFP_KERNEL);
-       if (!soc_dev_attr)
+       if (!soc_dev_attr) {
+               of_node_put(backupram);
                return -ENOMEM;
+       }
 
        soc_info_populate(soc_dev_attr, backupram);
+       of_node_put(backupram);
 
        soc_dev = soc_device_register(soc_dev_attr);
        if (IS_ERR(soc_dev)) {