From patchwork Sat Oct 4 19:40:50 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fabio Estevam X-Patchwork-Id: 26328 Received: from mail.tu-berlin.de ([130.149.7.33]) by www.linuxtv.org with esmtp (Exim 4.72) (envelope-from ) id 1XaVCw-0007gg-Ik; Sat, 04 Oct 2014 21:41:34 +0200 X-tubIT-Incoming-IP: 209.132.180.67 Received: from vger.kernel.org ([209.132.180.67]) by mail.tu-berlin.de (exim-4.72/mailfrontend-5) with esmtp id 1XaVCt-0005aD-9K; Sat, 04 Oct 2014 21:41:34 +0200 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750998AbaJDTlU (ORCPT + 1 other); Sat, 4 Oct 2014 15:41:20 -0400 Received: from mail-qg0-f47.google.com ([209.85.192.47]:35121 "EHLO mail-qg0-f47.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750943AbaJDTlU (ORCPT ); Sat, 4 Oct 2014 15:41:20 -0400 Received: by mail-qg0-f47.google.com with SMTP id i50so2301382qgf.34 for ; Sat, 04 Oct 2014 12:41:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id; bh=+I4QL59umrj//zEUOuDgVTTjw2II8y5F7/V/hNNsKC0=; b=jj/sbeyDqRVDUjUtaooDFXMqEBuK/6z4KqTjQm3K7s5yXlfgbhz9RWDs4M0+EGEnKg /ebHeNaewGxTP+P+SqhqtHt3Lgi2jgLnHTRttVcYFpLiB8l4XO1aMFmnY/NJjJKh+3nW VzQd0+SD0hExYMDVYl82MnT+9lT2RUgjDW48m7dDg8QQx+VXS6dqO5yvRGi3lPwOEJ3x MKycwjSUMJS5pwRw+jqAlCxssWVTLNFlYpJKPf1clW/eghDMmEnNbSAAbEGeEV8c80kW 6zlR/6KNdhcxNlmefki3D0SH8Tdc5kAmFa5JDkJSnFTw0NglFWnfp9mjsmNflGgHGbXn Plbg== X-Received: by 10.224.22.198 with SMTP id o6mr8847973qab.60.1412451679553; Sat, 04 Oct 2014 12:41:19 -0700 (PDT) Received: from localhost.localdomain ([187.66.157.233]) by mx.google.com with ESMTPSA id q20sm8754229qay.37.2014.10.04.12.41.16 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sat, 04 Oct 2014 12:41:18 -0700 (PDT) From: Fabio Estevam To: m.chehab@samsung.com Cc: p.zabel@pengutronix.de, linux-media@vger.kernel.org, Fabio Estevam Subject: [PATCH 1/3] [media] coda: Call v4l2_device_unregister() from a single location Date: Sat, 4 Oct 2014 16:40:50 -0300 Message-Id: <1412451652-27220-1-git-send-email-festevam@gmail.com> X-Mailer: git-send-email 1.9.1 Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org X-PMX-Version: 6.0.0.2142326, Antispam-Engine: 2.7.2.2107409, Antispam-Data: 2014.10.4.193319 X-PMX-Spam: Gauge=IIIIIIIII, Probability=9%, Report=' FORGED_FROM_GMAIL 0.1, MULTIPLE_RCPTS 0.1, HTML_00_01 0.05, HTML_00_10 0.05, BODYTEXTP_SIZE_3000_LESS 0, BODY_SIZE_1900_1999 0, BODY_SIZE_2000_LESS 0, BODY_SIZE_5000_LESS 0, BODY_SIZE_7000_LESS 0, DKIM_SIGNATURE 0, URI_ENDS_IN_HTML 0, __ANY_URI 0, __CP_URI_IN_BODY 0, __FRAUD_WEBMAIL 0, __FRAUD_WEBMAIL_FROM 0, __FROM_GMAIL 0, __HAS_FROM 0, __HAS_MSGID 0, __HAS_X_MAILER 0, __HAS_X_MAILING_LIST 0, __MIME_TEXT_ONLY 0, __MULTIPLE_RCPTS_CC_X2 0, __PHISH_SPEAR_STRUCTURE_1 0, __SANE_MSGID 0, __SUBJ_ALPHA_END 0, __TO_MALFORMED_2 0, __TO_NO_NAME 0, __URI_NO_WWW 0, __URI_NS , __YOUTUBE_RCVD 0' From: Fabio Estevam Instead of calling v4l2_device_unregister() in multiple locations within the error paths, let's call it from a single location to make the error handling simpler. Signed-off-by: Fabio Estevam Acked-by: Philipp Zabel --- drivers/media/platform/coda/coda-common.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/drivers/media/platform/coda/coda-common.c b/drivers/media/platform/coda/coda-common.c index ced4760..7cd82e8 100644 --- a/drivers/media/platform/coda/coda-common.c +++ b/drivers/media/platform/coda/coda-common.c @@ -1926,8 +1926,8 @@ static int coda_probe(struct platform_device *pdev) } else if (pdev_id) { dev->devtype = &coda_devdata[pdev_id->driver_data]; } else { - v4l2_device_unregister(&dev->v4l2_dev); - return -EINVAL; + ret = -EINVAL; + goto err_v4l2_register; } dev->debugfs_root = debugfs_create_dir("coda", NULL); @@ -1941,8 +1941,7 @@ static int coda_probe(struct platform_device *pdev) dev->debugfs_root); if (ret < 0) { dev_err(&pdev->dev, "failed to allocate work buffer\n"); - v4l2_device_unregister(&dev->v4l2_dev); - return ret; + goto err_v4l2_register; } } @@ -1952,8 +1951,7 @@ static int coda_probe(struct platform_device *pdev) dev->debugfs_root); if (ret < 0) { dev_err(&pdev->dev, "failed to allocate temp buffer\n"); - v4l2_device_unregister(&dev->v4l2_dev); - return ret; + goto err_v4l2_register; } } @@ -1988,6 +1986,10 @@ static int coda_probe(struct platform_device *pdev) pm_runtime_enable(&pdev->dev); return coda_firmware_request(dev); + +err_v4l2_register: + v4l2_device_unregister(&dev->v4l2_dev); + return ret; } static int coda_remove(struct platform_device *pdev)