diff mbox series

of_net: Fix missing of_find_device_by_node ref count drop

Message ID 1557740500-2479-1-git-send-email-ynezz@true.cz
State Not Applicable, archived
Headers show
Series of_net: Fix missing of_find_device_by_node ref count drop | expand

Checks

Context Check Description
robh/checkpatch success

Commit Message

Petr Štetiar May 13, 2019, 9:41 a.m. UTC
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>
---
 drivers/of/of_net.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Comments

Andrew Lunn May 13, 2019, 12:55 p.m. UTC | #1
On Mon, May 13, 2019 at 11:41:39AM +0200, Petr Štetiar wrote:
> 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>

    Andrew
David Miller May 13, 2019, 3:53 p.m. UTC | #2
From: Petr Štetiar <ynezz@true.cz>
Date: Mon, 13 May 2019 11:41:39 +0200

> 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>

Applied, thank you.
diff mbox series

Patch

diff --git a/drivers/of/of_net.c b/drivers/of/of_net.c
index a4b392a5406b..6f1be80e8c4e 100644
--- a/drivers/of/of_net.c
+++ b/drivers/of/of_net.c
@@ -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);