From patchwork Wed Dec 13 17:36:08 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: 848070 Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from lists.ozlabs.org (lists.ozlabs.org [103.22.144.68]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3yxkc91BH2z9s71 for ; Thu, 14 Dec 2017 04:45:13 +1100 (AEDT) Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id 3yxkc872rbzDsFq for ; Thu, 14 Dec 2017 04:45:12 +1100 (AEDT) X-Original-To: linuxppc-dev@lists.ozlabs.org Delivered-To: linuxppc-dev@lists.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=users.sourceforge.net (client-ip=212.227.15.3; helo=mout.web.de; envelope-from=elfring@users.sourceforge.net; receiver=) Received: from mout.web.de (mout.web.de [212.227.15.3]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 3yxkQL0kGLzDrcH for ; Thu, 14 Dec 2017 04:36:41 +1100 (AEDT) Received: from [192.168.1.3] ([77.181.208.154]) by smtp.web.de (mrweb002 [213.165.67.108]) with ESMTPSA (Nemesis) id 0LrbHJ-1fAEhY0unl-013Pt5; Wed, 13 Dec 2017 18:36:09 +0100 Subject: [PATCH 3/3] soc/fsl/qe: Use common error handling code in ucc_fast_init() From: SF Markus Elfring To: linuxppc-dev@lists.ozlabs.org, linux-arm-kernel@lists.infradead.org, Li Yang , Qiang Zhao References: <07738369-a787-98b4-41a5-71b7d630c356@users.sourceforge.net> Message-ID: <9668351a-8189-037f-5912-5663ac8706b1@users.sourceforge.net> Date: Wed, 13 Dec 2017 18:36:08 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.0 MIME-Version: 1.0 In-Reply-To: <07738369-a787-98b4-41a5-71b7d630c356@users.sourceforge.net> Content-Language: en-GB X-Provags-ID: V03:K0:j/Y98nmTnz1uX9U/kn81traMQ2fLl/RFWBz9GSWxfqKzToY/GuH z0Pw2cuI199gy+ORY3uFgJEr5cr2vhR+xNTw+ZfuWaYraZMgWxUH+dbnt/KV/Co3Q38Ewbn FOP/9ZrjfvzkLHnnsj9bfGIyq5wMw9TtytSLboKTyonf4Z2XTUyBtOpRNffjMVPPorPzkoz 6EDCSU0aPdUmIeSiQnyTQ== X-UI-Out-Filterresults: notjunk:1; V01:K0:Q9I39XhWRNo=:6dbV1j76PrNIUsOnAbQodl tncqwTzb04vsxsqsha3uuyRyBnGJeQzVlBIO134u6IX5zKjvhUV7MW/Zc7b2k/6zvNbOs/x3+ pylP3eJecM5TO2fSCQoaPBrL4PZCw0RPGVEhK0XQmI6Hjsu8MtDkYR+hWj02aupJMxsQUC/mO IWS0Gai8JJS0i4YB80zbOJnfcRRYcF/eEMn5+jBAR3A0YLd74uXqLikYWLmgDKmlRiD85+oR7 JuaKQ4PbAy3cskaYl0SPi2XQkmRbZ5/ZQZliklHre3t/w/AzKjb+Si4+2XYs5pI0aYpOD65kF SH2AP9NLwsKJ1C9OR2zSRKBbfbI2jnsVjeLdmzKZbX2DynlE0txoLoOxyAYn8/c0Myp2dkurt mGWNUwS6LZUsaUIJAyASBVTKf0YIAw0LgCs2UeIkii2ZHcKFmO0rIehPigssLZ5zWZuXc4o2j mIVmwyodGY6Q4V3nS2n1s380MD45yYWIurOkllEJxsXHyBEm8Wssel5wN449hXnXcoGF+lrXF X41KX3IeQx248DhxJUSF4b2YBhfbmItzBN6nQCbfu9z+0aR7h+2fpuVbuRW8XYdyQrPov5m83 6WlLYyaWHvEmtxCuMAUC2i4vBvT32kUEOfoZWbXXJc3rfIN/pHwPhv0dHol3Pp/wjZRHr82/x vwVa3bdO4NF60N8JIiWCrmmflS7L8h60PhiIsVRbs3AHVD7gexe6/VlmwziJV4NdPZ/YGvMJx MK8TGykENtwzJmT6oh+GOmLcYeQSBKRFKKgDb2M9ytuuBydWZxE6kyexGZDEgpZ2/7SMWsYvm TR4ehHMxS+CM/B6hKovYn9ezjDEwrTi73aldFbs030L9N3DHjg= X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.24 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kernel-janitors@vger.kernel.org, LKML Errors-To: linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org Sender: "Linuxppc-dev" From: Markus Elfring Date: Wed, 13 Dec 2017 18:18:56 +0100 Add jump targets so that a bit of exception handling can be better reused at the end of this function. Signed-off-by: Markus Elfring --- drivers/soc/fsl/qe/ucc_fast.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/drivers/soc/fsl/qe/ucc_fast.c b/drivers/soc/fsl/qe/ucc_fast.c index 2092bfdcf1bc..268dfc5dc89b 100644 --- a/drivers/soc/fsl/qe/ucc_fast.c +++ b/drivers/soc/fsl/qe/ucc_fast.c @@ -269,8 +269,7 @@ int ucc_fast_init(struct ucc_fast_info * uf_info, struct ucc_fast_private ** ucc printk(KERN_ERR "%s: cannot allocate MURAM for TX FIFO\n", __func__); uccf->ucc_fast_tx_virtual_fifo_base_offset = 0; - ucc_fast_free(uccf); - return -ENOMEM; + goto free_nomem; } /* Allocate memory for Rx Virtual Fifo */ @@ -282,8 +281,7 @@ int ucc_fast_init(struct ucc_fast_info * uf_info, struct ucc_fast_private ** ucc printk(KERN_ERR "%s: cannot allocate MURAM for RX FIFO\n", __func__); uccf->ucc_fast_rx_virtual_fifo_base_offset = 0; - ucc_fast_free(uccf); - return -ENOMEM; + goto free_nomem; } /* Set Virtual Fifo registers */ @@ -312,8 +310,7 @@ int ucc_fast_init(struct ucc_fast_info * uf_info, struct ucc_fast_private ** ucc COMM_DIR_RX)) { printk(KERN_ERR "%s: illegal value for RX clock\n", __func__); - ucc_fast_free(uccf); - return -EINVAL; + goto free_inval; } /* Tx clock routing */ if ((uf_info->tx_clock != QE_CLK_NONE) && @@ -321,8 +318,7 @@ int ucc_fast_init(struct ucc_fast_info * uf_info, struct ucc_fast_private ** ucc COMM_DIR_TX)) { printk(KERN_ERR "%s: illegal value for TX clock\n", __func__); - ucc_fast_free(uccf); - return -EINVAL; + goto free_inval; } } else { /* tdm Rx clock routing */ @@ -330,8 +326,7 @@ int ucc_fast_init(struct ucc_fast_info * uf_info, struct ucc_fast_private ** ucc ucc_set_tdm_rxtx_clk(uf_info->tdm_num, uf_info->rx_clock, COMM_DIR_RX)) { pr_err("%s: illegal value for RX clock", __func__); - ucc_fast_free(uccf); - return -EINVAL; + goto free_inval; } /* tdm Tx clock routing */ @@ -339,8 +334,7 @@ int ucc_fast_init(struct ucc_fast_info * uf_info, struct ucc_fast_private ** ucc ucc_set_tdm_rxtx_clk(uf_info->tdm_num, uf_info->tx_clock, COMM_DIR_TX)) { pr_err("%s: illegal value for TX clock", __func__); - ucc_fast_free(uccf); - return -EINVAL; + goto free_inval; } /* tdm Rx sync clock routing */ @@ -348,8 +342,7 @@ int ucc_fast_init(struct ucc_fast_info * uf_info, struct ucc_fast_private ** ucc ucc_set_tdm_rxtx_sync(uf_info->tdm_num, uf_info->rx_sync, COMM_DIR_RX)) { pr_err("%s: illegal value for RX clock", __func__); - ucc_fast_free(uccf); - return -EINVAL; + goto free_inval; } /* tdm Tx sync clock routing */ @@ -357,8 +350,7 @@ int ucc_fast_init(struct ucc_fast_info * uf_info, struct ucc_fast_private ** ucc ucc_set_tdm_rxtx_sync(uf_info->tdm_num, uf_info->tx_sync, COMM_DIR_TX)) { pr_err("%s: illegal value for TX clock", __func__); - ucc_fast_free(uccf); - return -EINVAL; + goto free_inval; } } @@ -374,6 +366,14 @@ int ucc_fast_init(struct ucc_fast_info * uf_info, struct ucc_fast_private ** ucc *uccf_ret = uccf; return 0; + +free_nomem: + ucc_fast_free(uccf); + return -ENOMEM; + +free_inval: + ucc_fast_free(uccf); + return -EINVAL; } EXPORT_SYMBOL(ucc_fast_init);