of_net: Fix missing of_find_device_by_node ref count drop
authorPetr Štetiar <ynezz@true.cz>
Mon, 13 May 2019 09:41:39 +0000 (11:41 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 13 May 2019 15:52:37 +0000 (08:52 -0700)
of_find_device_by_node takes a reference to the embedded struct device
which needs to be dropped after use.

Fixes: d01f449c008a ("of_net: add NVMEM support to of_get_mac_address")
Reported-by: kbuild test robot <lkp@intel.com>
Reported-by: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Petr Štetiar <ynezz@true.cz>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/of/of_net.c

index a4b392a..6f1be80 100644 (file)
@@ -60,10 +60,13 @@ static const void *of_get_mac_addr_nvmem(struct device_node *np)
                return ERR_PTR(-ENODEV);
 
        ret = nvmem_get_mac_address(&pdev->dev, &nvmem_mac);
-       if (ret)
+       if (ret) {
+               put_device(&pdev->dev);
                return ERR_PTR(ret);
+       }
 
        mac = devm_kmemdup(&pdev->dev, nvmem_mac, ETH_ALEN, GFP_KERNEL);
+       put_device(&pdev->dev);
        if (!mac)
                return ERR_PTR(-ENOMEM);