2024-05-01 12:52:36

by R Sundar

[permalink] [raw]
Subject: [PATCH] backlight: sky81452-backlight: replace of_node_put with __free

Use the new cleanup magic to replace of_node_put() with
__free(device_node) marking to auto release when they get out of scope.

Suggested-by: Julia Lawall <[email protected]>
Signed-off-by: R Sundar <[email protected]>
---
drivers/video/backlight/sky81452-backlight.c | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/drivers/video/backlight/sky81452-backlight.c b/drivers/video/backlight/sky81452-backlight.c
index eb18c6eb0ff0..54095872a33a 100644
--- a/drivers/video/backlight/sky81452-backlight.c
+++ b/drivers/video/backlight/sky81452-backlight.c
@@ -182,7 +182,7 @@ static const struct attribute_group sky81452_bl_attr_group = {
static struct sky81452_bl_platform_data *sky81452_bl_parse_dt(
struct device *dev)
{
- struct device_node *np = of_node_get(dev->of_node);
+ struct device_node *np __free(device_node) = of_node_get(dev->of_node);
struct sky81452_bl_platform_data *pdata;
int num_entry;
unsigned int sources[6];
@@ -194,10 +194,8 @@ static struct sky81452_bl_platform_data *sky81452_bl_parse_dt(
}

pdata = devm_kzalloc(dev, sizeof(*pdata), GFP_KERNEL);
- if (!pdata) {
- of_node_put(np);
+ if (!pdata)
return ERR_PTR(-ENOMEM);
- }

of_property_read_string(np, "name", &pdata->name);
pdata->ignore_pwm = of_property_read_bool(np, "skyworks,ignore-pwm");
@@ -217,7 +215,6 @@ static struct sky81452_bl_platform_data *sky81452_bl_parse_dt(
num_entry);
if (ret < 0) {
dev_err(dev, "led-sources node is invalid.\n");
- of_node_put(np);
return ERR_PTR(-EINVAL);
}

@@ -237,7 +234,6 @@ static struct sky81452_bl_platform_data *sky81452_bl_parse_dt(
if (ret < 0)
pdata->boost_current_limit = 2750;

- of_node_put(np);
return pdata;
}
#else
--
2.34.1



2024-05-01 14:02:00

by Daniel Thompson

[permalink] [raw]
Subject: Re: [PATCH] backlight: sky81452-backlight: replace of_node_put with __free

On Wed, May 01, 2024 at 06:21:46PM +0530, R Sundar wrote:
> Use the new cleanup magic to replace of_node_put() with
> __free(device_node) marking to auto release when they get out of scope.
>
> Suggested-by: Julia Lawall <[email protected]>
> Signed-off-by: R Sundar <[email protected]>

Thanks for the patch but I think this one is a more appropriate
solution to this issue:
https://lore.kernel.org/all/[email protected]/


Daniel.

2024-05-01 14:19:57

by Julia Lawall

[permalink] [raw]
Subject: Re: [PATCH] backlight: sky81452-backlight: replace of_node_put with __free



On Wed, 1 May 2024, Daniel Thompson wrote:

> On Wed, May 01, 2024 at 06:21:46PM +0530, R Sundar wrote:
> > Use the new cleanup magic to replace of_node_put() with
> > __free(device_node) marking to auto release when they get out of scope.
> >
> > Suggested-by: Julia Lawall <[email protected]>
> > Signed-off-by: R Sundar <[email protected]>
>
> Thanks for the patch but I think this one is a more appropriate
> solution to this issue:
> https://lore.kernel.org/all/[email protected]/

Maybe neither one is perfect? The one I see at that link has:

if (!pdata) {
- of_node_put(np);
return ERR_PTR(-ENOMEM);
}

which has unneeded {}

julia


>
>
> Daniel.
>

2024-05-02 06:20:15

by Shresth Prasad

[permalink] [raw]
Subject: Re: [PATCH] backlight: sky81452-backlight: replace of_node_put with __free

I'll remove the unnecessary braces and resend the patch.

Regards,
Shresth

On Wed, May 1, 2024 at 7:49 PM Julia Lawall <[email protected]> wrote:
>
>
>
> On Wed, 1 May 2024, Daniel Thompson wrote:
>
> > On Wed, May 01, 2024 at 06:21:46PM +0530, R Sundar wrote:
> > > Use the new cleanup magic to replace of_node_put() with
> > > __free(device_node) marking to auto release when they get out of scope.
> > >
> > > Suggested-by: Julia Lawall <[email protected]>
> > > Signed-off-by: R Sundar <[email protected]>
> >
> > Thanks for the patch but I think this one is a more appropriate
> > solution to this issue:
> > https://lore.kernel.org/all/[email protected]/
>
> Maybe neither one is perfect? The one I see at that link has:
>
> if (!pdata) {
> - of_node_put(np);
> return ERR_PTR(-ENOMEM);
> }
>
> which has unneeded {}
>
> julia
>
>
> >
> >
> > Daniel.
> >