Message ID | 20240612105232.400361-1-abdulrasaqolawani@gmail.com |
---|---|
State | Accepted |
Commit | 971b4eef86ccb8b107ad2875993e510eec4fdeae |
Headers | show |
Series | [v2] media: i2c: ov5647: replacing of_node_put with __free(device_node) | expand |
On Wed, 12 Jun 2024 at 11:53, Abdulrasaq Lawani <abdulrasaqolawani@gmail.com> 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@gmail.com> 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@raspberrypi.com> > --- > 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 >
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)
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@gmail.com> --- drivers/media/i2c/ov5647.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-)