Re: [PATCH v2 2/2] media: uvcvideo: Cleanup uvc_ctrl_add_info() error handling

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

 



Hi Hans,

Thank you for the patch.

On Tue, Jul 28, 2020 at 01:22:09PM +0200, Hans de Goede wrote:
> There is only 1 error exit in uvc_ctrl_add_info(), so using goto style
> error handling is not necessary. Also the kfree(ctrl->uvc_data) on error
> is not necessary, because the only error exit is for the kzalloc() of
> ctrl->uvc_data failing.
> 
> Remove all the error handling cruft and simply do "return -ENOMEM" on
> kzalloc() failure.
> 
> Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx>

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

> ---
> Changes in v2:
> - new patch in v2 of this series
> ---
>  drivers/media/usb/uvc/uvc_ctrl.c | 13 +++----------
>  1 file changed, 3 insertions(+), 10 deletions(-)
> 
> diff --git a/drivers/media/usb/uvc/uvc_ctrl.c b/drivers/media/usb/uvc/uvc_ctrl.c
> index b78aba991212..dbebc6083e85 100644
> --- a/drivers/media/usb/uvc/uvc_ctrl.c
> +++ b/drivers/media/usb/uvc/uvc_ctrl.c
> @@ -2011,18 +2011,14 @@ int uvc_ctrl_restore_values(struct uvc_device *dev)
>  static int uvc_ctrl_add_info(struct uvc_device *dev, struct uvc_control *ctrl,
>  	const struct uvc_control_info *info)
>  {
> -	int ret = 0;
> -
>  	ctrl->info = *info;
>  	INIT_LIST_HEAD(&ctrl->info.mappings);
>  
>  	/* Allocate an array to save control values (cur, def, max, etc.) */
>  	ctrl->uvc_data = kzalloc(ctrl->info.size * UVC_CTRL_DATA_LAST + 1,
>  				 GFP_KERNEL);
> -	if (ctrl->uvc_data == NULL) {
> -		ret = -ENOMEM;
> -		goto done;
> -	}
> +	if (!ctrl->uvc_data)
> +		return -ENOMEM;
>  
>  	ctrl->initialized = 1;
>  
> @@ -2030,10 +2026,7 @@ static int uvc_ctrl_add_info(struct uvc_device *dev, struct uvc_control *ctrl,
>  		"entity %u\n", ctrl->info.entity, ctrl->info.selector,
>  		dev->udev->devpath, ctrl->entity->id);
>  
> -done:
> -	if (ret < 0)
> -		kfree(ctrl->uvc_data);
> -	return ret;
> +	return 0;
>  }
>  
>  /*

-- 
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