Re: [PATCH 4/7] media: ccs: Correct error handling in ccs_register_subdev

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Sakari,

Thank you for the patch.

On Fri, Sep 15, 2023 at 10:28:06AM +0300, Sakari Ailus wrote:
> ccs_register_subdev() did not clean up the media entity in error case, do
> that now. Also switch to goto based error handling.
> 
> Signed-off-by: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx>

Reviewed-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>

> ---
>  drivers/media/i2c/ccs/ccs-core.c | 13 ++++++++++---
>  1 file changed, 10 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/media/i2c/ccs/ccs-core.c b/drivers/media/i2c/ccs/ccs-core.c
> index 6f8fbd82e21c..3fed071b65ab 100644
> --- a/drivers/media/i2c/ccs/ccs-core.c
> +++ b/drivers/media/i2c/ccs/ccs-core.c
> @@ -2968,7 +2968,7 @@ static int ccs_register_subdev(struct ccs_sensor *sensor,
>  	rval = v4l2_device_register_subdev(sensor->src->sd.v4l2_dev, &ssd->sd);
>  	if (rval) {
>  		dev_err(&client->dev, "v4l2_device_register_subdev failed\n");
> -		return rval;
> +		goto out_media_entity_cleanup;
>  	}
>  
>  	rval = media_create_pad_link(&ssd->sd.entity, source_pad,
> @@ -2976,11 +2976,18 @@ static int ccs_register_subdev(struct ccs_sensor *sensor,
>  				     link_flags);
>  	if (rval) {
>  		dev_err(&client->dev, "media_create_pad_link failed\n");
> -		v4l2_device_unregister_subdev(&ssd->sd);
> -		return rval;
> +		goto out_v4l2_device_unregister_subdev;
>  	}
>  
>  	return 0;
> +
> +out_v4l2_device_unregister_subdev:
> +	v4l2_device_unregister_subdev(&ssd->sd);
> +
> +out_media_entity_cleanup:
> +	media_entity_cleanup(&ssd->sd.entity);
> +
> +	return rval;
>  }
>  
>  static void ccs_unregistered(struct v4l2_subdev *subdev)

-- 
Regards,

Laurent Pinchart



[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux