The of_find_device_by_node() takes a reference to the underlying device structure, we should release that reference.
Signed-off-by: Huang Zijiang <[email protected]> --- arch/arm/mach-socfpga/pm.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/arch/arm/mach-socfpga/pm.c b/arch/arm/mach-socfpga/pm.c index d486678..8d7ca14 100644 --- a/arch/arm/mach-socfpga/pm.c +++ b/arch/arm/mach-socfpga/pm.c @@ -53,7 +53,7 @@ static int socfpga_setup_ocram_self_refresh(void) if (!pdev) { pr_warn("%s: failed to find ocram device!\n", __func__); ret = -ENODEV; - goto put_node; + goto fail; } ocram_pool = gen_pool_get(&pdev->dev, NULL); @@ -94,6 +94,9 @@ static int socfpga_setup_ocram_self_refresh(void) put_node: of_node_put(np); + put_device(&np->dev); +fail: + of_node_put(np); return ret; } -- 1.8.3.1

