From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751913AbdJTNSg (ORCPT ); Fri, 20 Oct 2017 09:18:36 -0400 Received: from mout.web.de ([217.72.192.78]:58880 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751244AbdJTNSe (ORCPT ); Fri, 20 Oct 2017 09:18:34 -0400 To: linux-arm-kernel@lists.infradead.org, Andrew Lunn , Gregory Clement , Jason Cooper , Russell King , Sebastian Hesselbarth , Thomas Petazzoni From: SF Markus Elfring Subject: [PATCH] ARM: mvebu: Use common error handling code in mvebu_armada_pm_init() Cc: LKML , kernel-janitors@vger.kernel.org Message-ID: <1c378b21-f10a-3a3a-fcee-8f0c0214a8fe@users.sourceforge.net> Date: Fri, 20 Oct 2017 15:17:51 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Language: en-GB Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K0:gLdiRsFy6mRUP3Hp2wporyFfOet6EGY12cYB1cT7cu+tX5aVk9/ hSJ9tVyyaNqydeqEmei0lPQbWpbH3OrD2KBkzsRv8SVNzdkLYu6LQjnFFiIMdJVMHcBWzXc h9Wclj/TTlgfn6pVTSgLGqdzoPseObQWkz52SpQTO3kX4Un6ltNxsu0eXCIWixRFITrs4ZC IyhOOwl61vsSs1BzVvD5A== X-UI-Out-Filterresults: notjunk:1;V01:K0:0rBTpE4/P4c=:c1HJwSvCrXdH3LHaNhOlk5 EjFQoFDi7p4cK0dPdpJL0y9qjWkILevFuQ86y4iF6atm7iv5qjHiA7NjVAlGP4kRmIF+wN2V9 kMiquQvLbW3r86gPpA29Aedvb4XF9BJQ7hnETmGdktRssaqEXtanGjK6N3uAYCKH0yUCEcS6e 4SaUHknbnedu/RXngWmjMrZmDG8IdwE29hD5jLYZgp4mhg5JcFv4sGaZYZlJqgA2M/ZJSsxVX 7UoMrfF2bDrCu6t1+/egHAKBYoVw8AmafKPx21Bs7WbdKSakuhoOL0w8HwXG36buMDlUfTNvW OQFaXld83WEC7Siy9zbPa0Zki/udPwu29SRd/sawHmcaHz2j9+Jj4sSMd0zdeD0rDDMbfF+qZ 1a5LyovcfTfCAxLgHBza0l0YrOvVfvgRRznsN79qfFfexGiPWw9RZ1UALD80HgXqPAc92glCk jjNRqderntSAUwHjr0BueP5O03cEftTRmxSR82g3w2kauSqSsDtFdT7VG2mfOyPPVLP+N92Ps Jivlkh+fhxnY/3pLiwNxfemmBHhGfJeKipdAUagh4v/aok8lngx2CkBwpmZfYiktsIjw5i69p 860YGrme1O+F1bN2Mohfr/BNAjkyrrg+3IYtrqcZ4MIOolWBcl5QT45cnkSVUeioY+WfhgUW0 lSP8yDH4r3rLxZPAbzNa/xhG+fDjsSDnLnXsVyJPVh1wFFut4WmBG0rtJuixdQ/S0ULUqfkCi fPXI27GEfUVyBgi600NQaiFK4t8JBNiGPxTfaadwcMjhPEqiLPZ4Ykj1PwsrOAuHkOENcwHxi IWYRUSclZWl6xfe06c+K9hpQA3uey3WOYr9aFQrvhwks2qMuNU= Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Markus Elfring Date: Fri, 20 Oct 2017 14:50:47 +0200 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 --- arch/arm/mach-mvebu/pm-board.c | 35 ++++++++++++++++------------------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/arch/arm/mach-mvebu/pm-board.c b/arch/arm/mach-mvebu/pm-board.c index db17121d7d63..bef248c76951 100644 --- a/arch/arm/mach-mvebu/pm-board.c +++ b/arch/arm/mach-mvebu/pm-board.c @@ -81,6 +81,7 @@ static int __init mvebu_armada_pm_init(void) struct device_node *np; struct device_node *gpio_ctrl_np; int ret = 0, i; + char *name; if (!of_machine_is_compatible("marvell,axp-gp")) return -ENODEV; @@ -90,41 +91,32 @@ static int __init mvebu_armada_pm_init(void) return -ENODEV; for (i = 0; i < ARMADA_PIC_NR_GPIOS; i++) { - char *name; struct of_phandle_args args; pic_gpios[i] = of_get_named_gpio(np, "ctrl-gpios", i); if (pic_gpios[i] < 0) { ret = -ENODEV; - goto out; + goto put_node; } name = kasprintf(GFP_KERNEL, "pic-pin%d", i); if (!name) { ret = -ENOMEM; - goto out; + goto put_node; } ret = gpio_request(pic_gpios[i], name); - if (ret < 0) { - kfree(name); - goto out; - } + if (ret < 0) + goto free_name; ret = gpio_direction_output(pic_gpios[i], 0); - if (ret < 0) { - gpio_free(pic_gpios[i]); - kfree(name); - goto out; - } + if (ret < 0) + goto free_gpio; ret = of_parse_phandle_with_fixed_args(np, "ctrl-gpios", 2, i, &args); - if (ret < 0) { - gpio_free(pic_gpios[i]); - kfree(name); - goto out; - } + if (ret < 0) + goto free_gpio; gpio_ctrl_np = args.np; pic_raw_gpios[i] = args.args[0]; @@ -135,10 +127,15 @@ static int __init mvebu_armada_pm_init(void) return -ENOMEM; mvebu_pm_suspend_init(mvebu_armada_pm_enter); - -out: +put_node: of_node_put(np); return ret; + +free_gpio: + gpio_free(pic_gpios[i]); +free_name: + kfree(name); + goto put_node; } /* -- 2.14.2