diff mbox

media: ov5645: add missing of_node_put() in error path

Message ID 1521476057-28792-1-git-send-email-akinobu.mita@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Akinobu Mita March 19, 2018, 4:14 p.m. UTC
The device node obtained with of_graph_get_next_endpoint() should be
released by calling of_node_put().  But it was not released when
v4l2_fwnode_endpoint_parse() failed.

This change moves the of_node_put() call before the error check and
fixes the issue.

Cc: Todor Tomov <todor.tomov@linaro.org>
Cc: Sakari Ailus <sakari.ailus@linux.intel.com>
Cc: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
---
 drivers/media/i2c/ov5645.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Comments

Todor Tomov March 21, 2018, 7:26 a.m. UTC | #1
Thank you Akinobu.

Acked-by: Todor Tomov <todor.tomov@linaro.org>

On 20.03.2018 00:14, Akinobu Mita wrote:
> The device node obtained with of_graph_get_next_endpoint() should be
> released by calling of_node_put().  But it was not released when
> v4l2_fwnode_endpoint_parse() failed.
> 
> This change moves the of_node_put() call before the error check and
> fixes the issue.
> 
> Cc: Todor Tomov <todor.tomov@linaro.org>
> Cc: Sakari Ailus <sakari.ailus@linux.intel.com>
> Cc: Mauro Carvalho Chehab <mchehab@s-opensource.com>
> Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
> ---
>  drivers/media/i2c/ov5645.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/media/i2c/ov5645.c b/drivers/media/i2c/ov5645.c
> index d28845f..a31fe18 100644
> --- a/drivers/media/i2c/ov5645.c
> +++ b/drivers/media/i2c/ov5645.c
> @@ -1131,13 +1131,14 @@ static int ov5645_probe(struct i2c_client *client,
>  
>  	ret = v4l2_fwnode_endpoint_parse(of_fwnode_handle(endpoint),
>  					 &ov5645->ep);
> +
> +	of_node_put(endpoint);
> +
>  	if (ret < 0) {
>  		dev_err(dev, "parsing endpoint node failed\n");
>  		return ret;
>  	}
>  
> -	of_node_put(endpoint);
> -
>  	if (ov5645->ep.bus_type != V4L2_MBUS_CSI2) {
>  		dev_err(dev, "invalid bus type, must be CSI2\n");
>  		return -EINVAL;
>
diff mbox

Patch

diff --git a/drivers/media/i2c/ov5645.c b/drivers/media/i2c/ov5645.c
index d28845f..a31fe18 100644
--- a/drivers/media/i2c/ov5645.c
+++ b/drivers/media/i2c/ov5645.c
@@ -1131,13 +1131,14 @@  static int ov5645_probe(struct i2c_client *client,
 
 	ret = v4l2_fwnode_endpoint_parse(of_fwnode_handle(endpoint),
 					 &ov5645->ep);
+
+	of_node_put(endpoint);
+
 	if (ret < 0) {
 		dev_err(dev, "parsing endpoint node failed\n");
 		return ret;
 	}
 
-	of_node_put(endpoint);
-
 	if (ov5645->ep.bus_type != V4L2_MBUS_CSI2) {
 		dev_err(dev, "invalid bus type, must be CSI2\n");
 		return -EINVAL;