diff --git a/lib/genalloc.c b/lib/genalloc.c
index bdb9a456bcbb50471310b9f636df72c6bc377ddd..38d2db82228c2ce716a68d266efe772e1bc6bc5d 100644
--- a/lib/genalloc.c
+++ b/lib/genalloc.c
@@ -588,6 +588,7 @@ struct gen_pool *of_get_named_gen_pool(struct device_node *np,
 	if (!np_pool)
 		return NULL;
 	pdev = of_find_device_by_node(np_pool);
+	of_node_put(np_pool);
 	if (!pdev)
 		return NULL;
 	return dev_get_gen_pool(&pdev->dev);