diff mbox series

[v2,linux-next] nvmem: meson-efuse: Replacing the use of of_node_put to __free

Message ID 20240516022838.8609-1-marilene.agarcia@gmail.com (mailing list archive)
State New, archived
Headers show
Series [v2,linux-next] nvmem: meson-efuse: Replacing the use of of_node_put to __free | expand

Commit Message

Marilene A Garcia May 16, 2024, 2:28 a.m. UTC
Use __free for device_node values, and thus drop calls to
of_node_put.

The goal is to reduce memory management issues by using this
scope-based of_node_put() cleanup to simplify function exit
handling. When using __free a resource is allocated within a
block, it is automatically freed at the end of the block.

Suggested-by: Julia Lawall <julia.lawall@inria.fr>
Signed-off-by: MarileneGarcia <marilene.agarcia@gmail.com>
---

Changes since v2:
The patch was updated.
It was checked and there is a blank line after the last 
variable declaration, it does not appear as an added line 
because it already existed and it is not changed by these 
changes.

Thanks

 drivers/nvmem/meson-efuse.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

Comments

Srinivas Kandagatla June 11, 2024, 9:30 a.m. UTC | #1
On Wed, 15 May 2024 23:28:38 -0300, MarileneGarcia wrote:
> Use __free for device_node values, and thus drop calls to
> of_node_put.
> 
> The goal is to reduce memory management issues by using this
> scope-based of_node_put() cleanup to simplify function exit
> handling. When using __free a resource is allocated within a
> block, it is automatically freed at the end of the block.
> 
> [...]

Applied, thanks!

[1/1] nvmem: meson-efuse: Replacing the use of of_node_put to __free
      commit: 5e15aa6f07b35fb3d755f7cdffb8acbca62abe74

Best regards,
diff mbox series

Patch

diff --git a/drivers/nvmem/meson-efuse.c b/drivers/nvmem/meson-efuse.c
index 33678d0af2c2..52ed9a62ca5b 100644
--- a/drivers/nvmem/meson-efuse.c
+++ b/drivers/nvmem/meson-efuse.c
@@ -42,20 +42,19 @@  static int meson_efuse_probe(struct platform_device *pdev)
 {
 	struct device *dev = &pdev->dev;
 	struct meson_sm_firmware *fw;
-	struct device_node *sm_np;
 	struct nvmem_device *nvmem;
 	struct nvmem_config *econfig;
 	struct clk *clk;
 	unsigned int size;
+	struct device_node *sm_np __free(device_node) =
+			of_parse_phandle(pdev->dev.of_node, "secure-monitor", 0);
 
-	sm_np = of_parse_phandle(pdev->dev.of_node, "secure-monitor", 0);
 	if (!sm_np) {
 		dev_err(&pdev->dev, "no secure-monitor node\n");
 		return -ENODEV;
 	}
 
 	fw = meson_sm_get(sm_np);
-	of_node_put(sm_np);
 	if (!fw)
 		return -EPROBE_DEFER;