Received: by 10.223.185.116 with SMTP id b49csp4075665wrg; Mon, 19 Feb 2018 10:37:50 -0800 (PST) X-Google-Smtp-Source: AH8x225qv42xY+/GsVMwWHneCgt9jclGVV3iHaQqbsjux/bKMKZN5qEjLMWnzvG5qn5UP5MYlAtE X-Received: by 2002:a17:902:b685:: with SMTP id c5-v6mr15471733pls.174.1519065469969; Mon, 19 Feb 2018 10:37:49 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519065469; cv=none; d=google.com; s=arc-20160816; b=chxfes/oDzOgtm+P5qpf4gRpEE7+X4CzeJpJYhw6o6aJABJe+FG2FJ6YQcIUcu4lwe goYKF/5TfUF9/mywj9LS/dq7Ru4/J7TQBaIFJECgFMQ1jVFk4/ornOtGgpkQbarIJ1fL EhBFxKIVs9W+bLg1F0bcPPBvpPP3H8RziFigRb7xCNZzsB46qKeejwIgAkkA20OOwhWe KlGtIJ9rz0RyqmHO5NbuIH3jZL0vjxYwzAnTg2sX1s5t+wpDu/NWQKTCZ+99KIdYYKqH DIEiasF4g4Gbm8qwYUZwAaN4RpWrnaajBdbV9cHH4rN9WBqRGl2CB7rXUVXiLLyZpzq0 jBgA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:organization:message-id:date:subject:cc:to :from:dkim-signature:arc-authentication-results; bh=0Xiu+TWKFSJdHymPMXBpDlLEhJHdYhd24tszWinv6Do=; b=cGLpUo3sgOxMl1AuX9eYJq7pGFKfmuWjI2YhUSiSGMFSNxegEpIsiO/r3EEF1fe64c dmD489lEjLVBEjbQXWZ6xcWtB8xg7EKRinQxIkmgaS6IcT2gcFeS1CfpTJ09K4bE0Mzb oZoPBPrHRy53K98uNHjea627vC4X9XOK/Aqa2u0ykSsyNjsMLO1Cqrkf3P2oTp5GiQCJ GREY02br4gM7aNKnkE5gNlzI9BZ1Qf1joY5h/sEgftr8wrJA6+Txw+n7tJ2p6Qy80AND PTe9gNNnXO4I13NhUsonSYdzXQOcrwXxCx5N+Ctbc2/Jd0jKI5c7C/Q7aqXcmJqj15Q5 2Qiw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass (test mode) header.i=@ideasonboard.com header.s=mail header.b=urcscX+e; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id n10si1749594pgp.343.2018.02.19.10.37.35; Mon, 19 Feb 2018 10:37:49 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass (test mode) header.i=@ideasonboard.com header.s=mail header.b=urcscX+e; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753523AbeBSSgw (ORCPT + 99 others); Mon, 19 Feb 2018 13:36:52 -0500 Received: from galahad.ideasonboard.com ([185.26.127.97]:48876 "EHLO galahad.ideasonboard.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753485AbeBSSgu (ORCPT ); Mon, 19 Feb 2018 13:36:50 -0500 Received: from avalon.localnet (dfj612ybrt5fhg77mgycy-3.rev.dnainternet.fi [IPv6:2001:14ba:21f5:5b00:2e86:4862:ef6a:2804]) by galahad.ideasonboard.com (Postfix) with ESMTPSA id 0D036200BF; Mon, 19 Feb 2018 19:35:10 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1519065310; bh=FPKjvLMRcvzbO2/BgSchWPHvfAQ6gG2qUE1mp5fwWqM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=urcscX+ewNGriC9xXlObtakQpg1qqiswnmebHpRCNCwrdjM816ROpo9xZ6Ygcf6uf wh9qOUCi4OEb+KkcT/5TJyQgNW27ZYyi3Oo2Lhmvl9ZLqOnAvPwkWoZHkwTmdAe902 zz8lUf2FzyH5wsoiTPnL1EsK5WASu0/zzhrU+iAs= From: Laurent Pinchart To: SF Markus Elfring Cc: linux-media@vger.kernel.org, Al Viro , Andi Shyti , Andrew Morton , Andrey Utkin , Arvind Yadav , Bhumika Goyal , Bjorn Helgaas , Brian Johnson , Christoph =?ISO-8859-1?Q?B=F6hmwalder?= , Christophe Jaillet , Colin Ian King , Daniele Nicolodi , David =?ISO-8859-1?Q?H=E4rdeman?= , Devendra Sharma , "Gustavo A. R. Silva" , Hans Verkuil , Inki Dae , Joe Perches , Kees Cook , Masahiro Yamada , Mauro Carvalho Chehab , Max Kellermann , Mike Isely , Philippe Ombredanne , Sakari Ailus , Santosh Kumar Singh , Satendra Singh Thakur , Sean Young , Seung-Woo Kim , Shyam Saini , Thomas Gleixner , Todor Tomov , Wei Yongjun , LKML , kernel-janitors@vger.kernel.org Subject: Re: [PATCH v2] [media] Use common error handling code in 20 functions Date: Mon, 19 Feb 2018 20:37:29 +0200 Message-ID: <3895609.4O6dNuP5Wm@avalon> Organization: Ideas on Board Oy In-Reply-To: <227d2d7c-5aee-1190-1624-26596a048d9c@users.sourceforge.net> References: <227d2d7c-5aee-1190-1624-26596a048d9c@users.sourceforge.net> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="iso-8859-1" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hello Markus, On Monday, 19 February 2018 20:11:56 EET SF Markus Elfring wrote: > From: Markus Elfring > Date: Mon, 19 Feb 2018 18:50:40 +0100 >=20 > Adjust jump targets so that a bit of exception handling can be better > reused at the end of these functions. >=20 > This issue was partly detected by using the Coccinelle software. >=20 > Signed-off-by: Markus Elfring > --- >=20 > v2: > Hans Verkuil insisted on patch squashing. Thus several changes > were recombined based on source files from Linux next-20180216. >=20 > The implementation of the function "tda8261_set_params" was improved > after a notification by Christoph B=F6hmwalder on 2017-09-26. >=20 > drivers/media/dvb-core/dmxdev.c | 16 ++++---- > drivers/media/dvb-frontends/tda1004x.c | 20 ++++++---- > drivers/media/dvb-frontends/tda8261.c | 19 ++++++---- > drivers/media/pci/bt8xx/dst.c | 19 ++++++---- > drivers/media/pci/bt8xx/dst_ca.c | 30 +++++++-------- > drivers/media/pci/cx88/cx88-input.c | 17 +++++---- > drivers/media/platform/omap3isp/ispvideo.c | 29 +++++++-------- > .../media/platform/qcom/camss-8x16/camss-csid.c | 20 +++++----- > drivers/media/tuners/tuner-xc2028.c | 30 +++++++-------- > drivers/media/usb/cpia2/cpia2_usb.c | 13 ++++--- > drivers/media/usb/gspca/gspca.c | 17 +++++---- > drivers/media/usb/gspca/sn9c20x.c | 17 +++++---- > drivers/media/usb/pvrusb2/pvrusb2-ioread.c | 10 +++-- > drivers/media/usb/tm6000/tm6000-cards.c | 7 ++-- > drivers/media/usb/tm6000/tm6000-dvb.c | 11 ++++-- > drivers/media/usb/tm6000/tm6000-video.c | 13 ++++--- > drivers/media/usb/ttusb-budget/dvb-ttusb-budget.c | 13 +++---- > drivers/media/usb/ttusb-dec/ttusb_dec.c | 43 +++++++---------= =2D-- > drivers/media/usb/uvc/uvc_v4l2.c | 13 ++++--- > 19 files changed, 180 insertions(+), 177 deletions(-) [snip] > diff --git a/drivers/media/platform/omap3isp/ispvideo.c > b/drivers/media/platform/omap3isp/ispvideo.c index > a751c89a3ea8..2ddcac736402 100644 > --- a/drivers/media/platform/omap3isp/ispvideo.c > +++ b/drivers/media/platform/omap3isp/ispvideo.c > @@ -1315,14 +1315,12 @@ static int isp_video_open(struct file *file) > /* If this is the first user, initialise the pipeline. */ > if (omap3isp_get(video->isp) =3D=3D NULL) { > ret =3D -EBUSY; > - goto done; > + goto delete_fh; > } >=20 > ret =3D v4l2_pipeline_pm_use(&video->video.entity, 1); > - if (ret < 0) { > - omap3isp_put(video->isp); > - goto done; > - } > + if (ret < 0) > + goto put_isp; >=20 > queue =3D &handle->queue; > queue->type =3D video->type; > @@ -1335,10 +1333,8 @@ static int isp_video_open(struct file *file) > queue->dev =3D video->isp->dev; >=20 > ret =3D vb2_queue_init(&handle->queue); > - if (ret < 0) { > - omap3isp_put(video->isp); > - goto done; > - } > + if (ret < 0) > + goto put_isp; >=20 > memset(&handle->format, 0, sizeof(handle->format)); > handle->format.type =3D video->type; > @@ -1346,14 +1342,15 @@ static int isp_video_open(struct file *file) >=20 > handle->video =3D video; > file->private_data =3D &handle->vfh; > + goto exit; No need for a goto here, you can just return 0. >=20 > -done: > - if (ret < 0) { > - v4l2_fh_del(&handle->vfh); > - v4l2_fh_exit(&handle->vfh); > - kfree(handle); > - } > - > +put_isp: > + omap3isp_put(video->isp); > +delete_fh: > + v4l2_fh_del(&handle->vfh); > + v4l2_fh_exit(&handle->vfh); > + kfree(handle); Please prefix the error labels with error_. > +exit: > return ret; > } >=20 Otherwise the changes to omap3isp look OK to me. [snip] > diff --git a/drivers/media/usb/uvc/uvc_v4l2.c > b/drivers/media/usb/uvc/uvc_v4l2.c index a13ad4e178be..f64c851adea2 100644 > --- a/drivers/media/usb/uvc/uvc_v4l2.c > +++ b/drivers/media/usb/uvc/uvc_v4l2.c > @@ -994,10 +994,8 @@ static int uvc_ioctl_g_ext_ctrls(struct file *file, > void *fh, struct v4l2_queryctrl qc =3D { .id =3D ctrl->id }; >=20 > ret =3D uvc_query_v4l2_ctrl(chain, &qc); > - if (ret < 0) { > - ctrls->error_idx =3D i; > - return ret; > - } > + if (ret < 0) > + goto set_index; >=20 > ctrl->value =3D qc.default_value; > } > @@ -1013,14 +1011,17 @@ static int uvc_ioctl_g_ext_ctrls(struct file *fil= e, > void *fh, ret =3D uvc_ctrl_get(chain, ctrl); > if (ret < 0) { > uvc_ctrl_rollback(handle); > - ctrls->error_idx =3D i; > - return ret; > + goto set_index; > } > } >=20 > ctrls->error_idx =3D 0; >=20 > return uvc_ctrl_rollback(handle); > + > +set_index: > + ctrls->error_idx =3D i; > + return ret; > } =46or uvcvideo I find this to hinder readability without adding much added= =20 value. Please drop the uvcvideo change from this patch. >=20 > static int uvc_ioctl_s_try_ext_ctrls(struct uvc_fh *handle, =2D-=20 Regards, Laurent Pinchart