From patchwork Mon Oct 30 17:51:19 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: 832125 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-gpio-owner@vger.kernel.org; receiver=) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3yQhqg4wlcz9t3Z for ; Tue, 31 Oct 2017 04:51:27 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932642AbdJ3Rv0 (ORCPT ); Mon, 30 Oct 2017 13:51:26 -0400 Received: from mout.web.de ([217.72.192.78]:56539 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932243AbdJ3RvZ (ORCPT ); Mon, 30 Oct 2017 13:51:25 -0400 Received: from [192.168.1.2] ([77.181.252.76]) by smtp.web.de (mrweb101 [213.165.67.124]) with ESMTPSA (Nemesis) id 0MYf78-1ddnCc2lBS-00VPNS; Mon, 30 Oct 2017 18:51:20 +0100 To: linux-gpio@vger.kernel.org, Andrew Bresticker , Damien Horsley , Ezequiel Garcia , Govindraj Raja , Kevin Cernekee , Linus Walleij From: SF Markus Elfring Subject: [PATCH] pinctrl: pistachio: Use common error handling code in pistachio_gpio_register() Cc: LKML , kernel-janitors , James Hartley , James Hogan Message-ID: <0b8eced6-c4d9-6b0b-ac23-de764622e91c@users.sourceforge.net> Date: Mon, 30 Oct 2017 18:51:19 +0100 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:5qY4snYwHAUNRAb8ez/Z/zdUrTSyyJDvVO7gH1TkQ3eqM1ae+Qd zYe9imcwpyGn5+hg6MWmeHI6fyjzTyHuQOtt4jnFO7mZQXY1f+VdwigXIDPkzu3Xpn7ZnkU Kg+UizSqskH3589tJ8IwyFVXH/0LUmvL4CkPPz49BpSZfher+g7Pxeatry8vRUoycBnrIU3 ZDtUGx33wodzhmOVVPz4g== X-UI-Out-Filterresults: notjunk:1; V01:K0:/MELVab5apI=:O1Y1PdQ+832Ece0n1E+Tuw +Psq2LwlJ3hZwLHIxn4MqrsSu2wd6BCYgqMj+5IRT0bB2RX6ny8MSnhfVHMYTpTGMIATfuP5V 2wYvg/r2mDmp6doe0hu12dTnqADlR/nyBxOYixrX1aPA1xnS3liHAtIrQ/0IwFHrBM0HjbfJx K0bxYvVGxCFgEu4t626UCBKQNkYuTJbLa7r2L1pr7d7Y2oSSE/LxeT669aLOy/PUSywd4scGu i/aeLAJ04b6yfdPreUf8cTNUKjS1v7WFJb1h0dzhKOnH+5U1Tlky1mxAQa9JHpeqaqSSOp3vo ODywaULbFeL95QAVDHh//9hTnf9AB96/LjRkQ4Ov5OpfIXQQcdCLGqgIIPL7E4TQXTSBkypzB Z03pO4ykY7jNYhrAp19XiVrbRKE3nF+2Z9/2JXbxkk806FuilgrevNa+xNVUfeCQNkY0FCoVG CfpOuyweCf3lyBzAuBI+xpaiBF0Ncs60Hd17AC+9/L1kHGWmpii20rrWdh9XMf6MoqXhOL9wy iRMWoD4HYR2/kjSmwPUa6n5QV8SRcZzhQVhmZkmpSiU/i8tzObM23odp/tdu9awSqsoXZ9Ccf d1w4OKK9y7GYB2htoEawVg4lFKpbR2H9h81zSAy0lqqOndlnkLhxPtb5tFRlvlkxyh53lWqSm QDsiAwZo6ICep0n4rp4u31ZmJi7VrapOFFtVDeUKico5imgjkRh/XyajSCHkGBKfliM6RkVxm 7kv95CFrZzlJ+ewKTPzq0te1xiYTvC4TFvGWreRpwVEb2w6P777KxLw16hAQWN/XZBB2N/6iT ePCOfc9Icu+++kgxhvI0iTBJrxpHdtJg66XBbzUlJqYzY2KagI= Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org From: Markus Elfring Date: Mon, 30 Oct 2017 18:40:10 +0100 Adjust jump targets 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 Acked-by: Andrew Bresticker --- drivers/pinctrl/pinctrl-pistachio.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/drivers/pinctrl/pinctrl-pistachio.c b/drivers/pinctrl/pinctrl-pistachio.c index 55375b1b3cc8..b314eb61bf35 100644 --- a/drivers/pinctrl/pinctrl-pistachio.c +++ b/drivers/pinctrl/pinctrl-pistachio.c @@ -1362,21 +1362,21 @@ static int pistachio_gpio_register(struct pistachio_pinctrl *pctl) if (!child) { dev_err(pctl->dev, "No node for bank %u\n", i); ret = -ENODEV; - goto err; + goto remove_chips; } if (!of_find_property(child, "gpio-controller", NULL)) { dev_err(pctl->dev, "No gpio-controller property for bank %u\n", i); ret = -ENODEV; - goto err; + goto remove_chips; } irq = irq_of_parse_and_map(child, 0); if (irq < 0) { dev_err(pctl->dev, "No IRQ for bank %u: %d\n", i, irq); ret = irq; - goto err; + goto remove_chips; } bank = &pctl->gpio_banks[i]; @@ -1389,7 +1389,7 @@ static int pistachio_gpio_register(struct pistachio_pinctrl *pctl) if (ret < 0) { dev_err(pctl->dev, "Failed to add GPIO chip %u: %d\n", i, ret); - goto err; + goto remove_chips; } ret = gpiochip_irqchip_add(&bank->gpio_chip, &bank->irq_chip, @@ -1397,8 +1397,7 @@ static int pistachio_gpio_register(struct pistachio_pinctrl *pctl) if (ret < 0) { dev_err(pctl->dev, "Failed to add IRQ chip %u: %d\n", i, ret); - gpiochip_remove(&bank->gpio_chip); - goto err; + goto remove_chip; } gpiochip_set_chained_irqchip(&bank->gpio_chip, &bank->irq_chip, irq, pistachio_gpio_irq_handler); @@ -1409,13 +1408,15 @@ static int pistachio_gpio_register(struct pistachio_pinctrl *pctl) if (ret < 0) { dev_err(pctl->dev, "Failed to add GPIO range %u: %d\n", i, ret); - gpiochip_remove(&bank->gpio_chip); - goto err; + goto remove_chip; } } return 0; -err: + +remove_chip: + gpiochip_remove(&bank->gpio_chip); +remove_chips: for (; i > 0; i--) { bank = &pctl->gpio_banks[i - 1]; gpiochip_remove(&bank->gpio_chip);