From patchwork Wed Oct 25 13:05:52 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SF Markus Elfring X-Patchwork-Id: 10026667 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 1849560375 for ; Wed, 25 Oct 2017 13:06:38 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1785A28B7B for ; Wed, 25 Oct 2017 13:06:38 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 0A4C928B7D; Wed, 25 Oct 2017 13:06:38 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.2 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [65.50.211.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 8755E28B7B for ; Wed, 25 Oct 2017 13:06:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Date:Message-ID:Subject: From:To:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=GGKNTZvsOFhDS+Qa1RUuA1HUtvS0EpTdFSPgc6eBMkQ=; b=S+ztR443+/dPdN erEf4JPFPaD8dn4Nca5x9seyvCRvMrBe0/0XEtreDhUJKEiot2ATSo48RhmBAQaDUf/p/VLKAZA0J yIR4hsNmY0ywpR3bDoDVEJtWuGskKDz+0qpq5Oipca7EJ1A8G3KwSSJ2cDpopSYAHeCNawbtJsy8s +37g/ozHjJQIC6BCITMX2NSB5zdC59pJ2/MxVFESxSgog19/0CPOJ4CUHJK7CkH0P86iJWgcsD75a PZpPkQs5yiTm9wxDQfRqNvxy/AQRcwjAeJoyzLVtOvKKMHpQSmPR2mtDMQNA1Et8kkPaXh1eUK4+I idQirYEW43AGsjQ8tXiA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux)) id 1e7LOD-0008EI-RJ; Wed, 25 Oct 2017 13:06:33 +0000 Received: from mout.web.de ([212.227.15.3]) by bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux)) id 1e7LO5-0008A9-2g for linux-arm-kernel@lists.infradead.org; Wed, 25 Oct 2017 13:06:31 +0000 Received: from [192.168.1.2] ([77.181.217.114]) by smtp.web.de (mrweb004 [213.165.67.108]) with ESMTPSA (Nemesis) id 0LtCm3-1dAjXc1IVf-012roS; Wed, 25 Oct 2017 15:05:55 +0200 To: linux-arm-kernel@lists.infradead.org, linux-i2c@vger.kernel.org, linux-samsung-soc@vger.kernel.org, Krzysztof Kozlowski , Kukjin Kim , Wolfram Sang From: SF Markus Elfring Subject: [PATCH] I2C-S3C2410: Use common error handling code in s3c24xx_i2c_probe() Message-ID: <32c82282-ee0a-137f-4913-310b194b60f3@users.sourceforge.net> Date: Wed, 25 Oct 2017 15:05:52 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 Content-Language: en-GB X-Provags-ID: V03:K0:3Qe4Zy0CCp5RjbiPNNAZ03wE4iJ3K9Tz4xSpXgsVmADP332gN4s N/excbyMGzqpaIGcjxYnJqLflhgtP6PB38d9doVimR8GKNoWgD99rBWgYMWiMCk6tIh9vhx BedDvjzC4sZQOTyJ9trRScXrvx/8SPl9flVh9uRkp4heER1sktAa8Sz3aGzkGQXsLY/mhs+ EJrrxVj9R/dlO/4p/6gwA== X-UI-Out-Filterresults: notjunk:1; V01:K0:H/MSjfL2Dwg=:rpFgSoL7Z5F394q8TnTgj/ LotRL/a9v5PmP5Bc/agw2RL3dF7BWgSmertzOAHq7UHX1GhI6oqCU1en5/lXTX2QgkJQMCowx ZCvlrFE6KepKweA2jT04dTu/4ZsZUAy3Pk0aqTj+zuFn4mQcL9rInfDTj3zqLj/pBdZ3I6o7I y/8iVufMDCygXsI7UwkkpjwTAo+biGz+vlz8Xd0/PmxGwHr7y0HibCfj+RbsN6JmuQQWhc5E8 n8HBjIwgKYIEJfY+w5kL7yxlGJ8SN6bjsWKnmqb6aWku4J0qoRPnGQgUwpeP0OrkIpd5H50zd jQ8qPt+pZLE42z/Twl2VMOmw+eF2ihsRu2jfTcadTMrHwa/eH2mT4HCITq9Z9rSId2wKz8XYf jwG8HY0vbeBxZqj5MJnnR4DdKuE4NA05l6H7eyTqpqUsjF98sOIHTRO2i9qWxEFzVnIiVnoiY xnppj4Z5xGGF91O5lvQhDbRtDgwyLHMWr6L/JG8v1Wf/dtMq82vwfBgzCyWfXsZrSMDOTIbUQ Pp/lQxhGrB09wNBMz/YIT3FJ77/M48dg5tWnpOKlwJxoC/2i0ZtxJ1gTGjfdJAoxIMEyCAzYH OP5k8njkg55/Outj5je3Sc2Bq2CcRU04nKsJWMECiQSDzmcUgcz3kSi1imYDrLNu8U3Y5HnK1 QEgn9ZUc8Sn99krHejQlAJ2z4JUNOPqkIopcW1MS56i1MHily96pymMbuPDrFElec+/andRtY A/q02FuwpH8ClYTfbcntwJVpWoQtZfP4R09yBWOKOCaMastbPUSKjGmpydKsxP6e8USfSLFat 8ScrgSzobhCN3yVpPoKzQdu4UYuSuUU/035r5yAga2mpT+DaMA= X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20171025_060625_518273_D3B77211 X-CRM114-Status: GOOD ( 10.34 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kernel-janitors@vger.kernel.org, LKML Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP From: Markus Elfring Date: Wed, 25 Oct 2017 15:00:35 +0200 Add a jump target so that a bit of exception handling can be better reused at the end of this function. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring --- drivers/i2c/busses/i2c-s3c2410.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/drivers/i2c/busses/i2c-s3c2410.c b/drivers/i2c/busses/i2c-s3c2410.c index 5d97510ee48b..304a6d492c8c 100644 --- a/drivers/i2c/busses/i2c-s3c2410.c +++ b/drivers/i2c/busses/i2c-s3c2410.c @@ -1168,8 +1168,7 @@ static int s3c24xx_i2c_probe(struct platform_device *pdev) clk_disable(i2c->clk); if (ret != 0) { dev_err(&pdev->dev, "I2C controller init failed\n"); - clk_unprepare(i2c->clk); - return ret; + goto unprepare_clock; } /* @@ -1180,24 +1179,21 @@ static int s3c24xx_i2c_probe(struct platform_device *pdev) i2c->irq = ret = platform_get_irq(pdev, 0); if (ret <= 0) { dev_err(&pdev->dev, "cannot find IRQ\n"); - clk_unprepare(i2c->clk); - return ret; + goto unprepare_clock; } ret = devm_request_irq(&pdev->dev, i2c->irq, s3c24xx_i2c_irq, 0, dev_name(&pdev->dev), i2c); if (ret != 0) { dev_err(&pdev->dev, "cannot claim IRQ %d\n", i2c->irq); - clk_unprepare(i2c->clk); - return ret; + goto unprepare_clock; } } ret = s3c24xx_i2c_register_cpufreq(i2c); if (ret < 0) { dev_err(&pdev->dev, "failed to register cpufreq notifier\n"); - clk_unprepare(i2c->clk); - return ret; + goto unprepare_clock; } /* @@ -1217,12 +1213,15 @@ static int s3c24xx_i2c_probe(struct platform_device *pdev) if (ret < 0) { pm_runtime_disable(&pdev->dev); s3c24xx_i2c_deregister_cpufreq(i2c); - clk_unprepare(i2c->clk); - return ret; + goto unprepare_clock; } dev_info(&pdev->dev, "%s: S3C I2C adapter\n", dev_name(&i2c->adap.dev)); return 0; + +unprepare_clock: + clk_unprepare(i2c->clk); + return ret; } static int s3c24xx_i2c_remove(struct platform_device *pdev)