Re: [PATCH v2] media: i2c: ov5647: replacing of_node_put with __free(device_node)

From: Dave Stevenson
Date: Thu Jun 13 2024 - 12:18:45 EST


On Wed, 12 Jun 2024 at 11:53, Abdulrasaq Lawani
<abdulrasaqolawani@xxxxxxxxx> wrote:
>
> Replace instance of of_node_put with __free(device_node)
> to protect against any memory leaks due to future changes
> in control flow.
>
> Signed-off-by: Abdulrasaq Lawani <abdulrasaqolawani@xxxxxxxxx>

Conditional ack had already been given on v1.
I don't know this new __free well enough to give an R-b, but it looks sane.

Acked-by: Dave Stevenson <dave.stevenson@xxxxxxxxxxxxxxx>

> ---
> drivers/media/i2c/ov5647.c | 11 ++++-------
> 1 file changed, 4 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/media/i2c/ov5647.c b/drivers/media/i2c/ov5647.c
> index 7e1ecdf2485f..0fb4d7bff9d1 100644
> --- a/drivers/media/i2c/ov5647.c
> +++ b/drivers/media/i2c/ov5647.c
> @@ -1360,24 +1360,21 @@ static int ov5647_parse_dt(struct ov5647 *sensor, struct device_node *np)
> struct v4l2_fwnode_endpoint bus_cfg = {
> .bus_type = V4L2_MBUS_CSI2_DPHY,
> };
> - struct device_node *ep;
> + struct device_node *ep __free(device_node) =
> + of_graph_get_endpoint_by_regs(np, 0, -1);
> int ret;
>
> - ep = of_graph_get_endpoint_by_regs(np, 0, -1);
> if (!ep)
> return -EINVAL;
>
> ret = v4l2_fwnode_endpoint_parse(of_fwnode_handle(ep), &bus_cfg);
> if (ret)
> - goto out;
> + return ret;
>
> sensor->clock_ncont = bus_cfg.bus.mipi_csi2.flags &
> V4L2_MBUS_CSI2_NONCONTINUOUS_CLOCK;
>
> -out:
> - of_node_put(ep);
> -
> - return ret;
> + return 0;
> }
>
> static int ov5647_probe(struct i2c_client *client)
> --
> 2.43.0
>