From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752470AbcGOCts (ORCPT ); Thu, 14 Jul 2016 22:49:48 -0400 Received: from mail-bn3nam01on0062.outbound.protection.outlook.com ([104.47.33.62]:22800 "EHLO NAM01-BN3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752410AbcGOCtm (ORCPT ); Thu, 14 Jul 2016 22:49:42 -0400 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=fail action=none header.from=nxp.com;nxp.com; dkim=none (message not signed) header.d=none; From: Zhao Qiang To: , CC: , , , Zhao Qiang Subject: [PATCH 2/2] wan/fsl_ucc_hdlc: rewrite error handling to make it clearer Date: Fri, 15 Jul 2016 10:38:25 +0800 Message-ID: <1468550305-38571-2-git-send-email-qiang.zhao@nxp.com> X-Mailer: git-send-email 2.1.0.27.g96db324 In-Reply-To: <1468550305-38571-1-git-send-email-qiang.zhao@nxp.com> References: <1468550305-38571-1-git-send-email-qiang.zhao@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131130245797971948;(91ab9b29-cfa4-454e-5278-08d120cd25b8);() X-Forefront-Antispam-Report: CIP:192.88.168.50;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(7916002)(2980300002)(1110001)(1109001)(339900001)(199003)(189002)(50226002)(356003)(33646002)(105606002)(19580395003)(8666005)(5001770100001)(189998001)(50466002)(11100500001)(68736007)(7846002)(36756003)(47776003)(19580405001)(85426001)(87936001)(2906002)(8676002)(229853001)(4326007)(48376002)(81156014)(81166006)(6806005)(104016004)(586003)(86362001)(305945005)(92566002)(2950100001)(106466001)(5003940100001)(8936002)(50986999)(76176999)(77096005)(97736004)(7059030)(21314002)(2101003);DIR:OUT;SFP:1101;SCL:1;SRVR:CY4PR03MB2503;H:tx30smr01.am.freescale.net;FPR:;SPF:Fail;PTR:InfoDomainNonexistent;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BN1BFFO11FD033;1:w2grNePywDzhBrDx5FEX2InWU3QYciMXuA1Vw1JLgqlaQ3/PK1REZ1u1xoferqNyZqnP15mPfpAQTlDhCt/hmUNeNWKTBT0Voiu5krBcYTjAiSKi0aPYuVH60ySIIkzpZ9ICzXRhz7uPnckBYJaBfVFsnTcYNclbEdVtoMiwpZD6RaMqO/AODozKJttAgZN7dVJii6j7AQVeXUKw5D0nyyxZwkBlRsFMY0Y+VHoK8RL1L1uYc3wyZyBtsWnKl9OxEFliuxzsP2oqCvKaTN86LvnWh7SGZdqAjA70xSuNxkP3gs4EEwQkxUM5GdvB/iKbAzzjviy8/L03as3dVgg0ll2TVCry1RsU9v/5cZLYNymX02crS34729hqA3dbSVJ0Nv98hIa9m8uymOfBmU0MnFF7iuZmcCwOZFZ6S78U+iS+GeSgwod/0YYvlt67nZ3ddhAE5p3Mur5TGXgjuBlGa6AKp4CRSrlFiUk9P1GbYQIWmYaVZtR4QYYHkcTQN9VOuTDPPTIVuavEKIs/kQ+e/1bJx1OEls/ZigjmYhWB3w+FNSk0g7jfv1OEy+O9UIAbrP8it6M8KCUZzedUdkFl5agLtQHQbZFapkj015bjpFFQQ5FFXH4Kj2m9KKReAfBig+Cz29E+Mj5KdSWkgOYOKK4zIj1YiT3Luse8d4zVndfw1h4hzIkC3afDoh4TYYHeGVGw1bE/HvQ62dCQx1dZLYzPvlCI/kOlybXAutUGUgo= MIME-Version: 1.0 Content-Type: text/plain X-MS-Office365-Filtering-Correlation-Id: c033ce20-a25b-4e59-a68b-08d3ac5aaa8d X-Microsoft-Exchange-Diagnostics: 1;CY4PR03MB2503;2:CVz1/ZVSksvP0ADRuzBcJ/LuqdGIFp+ezsggSXxkPAAZIt8j+o0Nf1hh+7l0YeA4jqM4NOELvEuXRZBVAvTrHNGNl/Cl0ekIVXOX57SIiE3wg0eDM6z7Ixq1Qrdnogu1fG6qO05n4uNfJtaKSxa3Huvse9BQMD9rrs4YWDeaaQjb0FQn44b+zzFQEAeCqIom;3:dok3GbHo20kbLAcrrarwg/zFCWHg5HUg98tGLIHpj3RnUYe5bwU0XkDlN4liK2tzwOqkB7USGhUwzd5dSCGnZkGiRYR50IGqa00d5fx2JQOoG+A7YDdIc0mzhElmg0YnTvljXGwzFKxSCVLy9R7JplyiLSzj+37/JjDsLLLHycsj0HyBc60iSHuBMZZMIWJS7TAvOJdBBndJGVzb3RMnTuEascUr6I6OW1pIiwh3OUo= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY4PR03MB2503; X-Microsoft-Exchange-Diagnostics: 1;CY4PR03MB2503;25:cY3/X/T6kmtX5fuVh88PMkHFNuet3iCIMvyYmB5KG817jgDYhXxmycFjB7Mpw5/ILmDwBdTXN7Le09RfguaSyw6HiMEeEob7Uz3lLB0W0ckfV2E+lS4HmWSRwVKt3K7n8Su1nVksxgRyB39SJ+W5tVQ+vcoa3UrKNOzimHeN25tNWAV6gpsf7iAueO5KRaCGnTGrJbN0B2iho4sZEvhY9MHjO1PXSJkqpPj+zrnOdYOkdX6k0BHUmwKVejL/cUOokaWDl9QdsSrcENwZyo5FOYpc07ihadmLOHuXeGUjzbTuyNu7Zuc7jkPJSnQdu68DXnU2VKp5lc+Rglrv4tuMb/VbaV5es1AyOP1RVEyPgEwU6XKKZ1rnB8XMu+FFrVujD26UnhUUkwIN0zgfzJAhqDKAQPCIcIDg2qRt/Sk47VMrPaksGmNrw3sYFwdss/DxUT54R5UzwxiNZqsmqRgFP2NfIJFk4NzOI3PRLcDaVY5JgytUXdbpYExqU/nIB/NAfzBhG5eez23dBwK790yEguS4e7sa9fUpTxoxtScB1fSSkoriDbFNdFKEOh7lNl+A97fstjwBvQJ95lhTdaRFQv8f5XucZCyWj9c53y0UHXTw1HTkQlFyRlICUul8JTbjFo8lzHtUnaQRTOGYKkowb7W95U2I6mNZlFjTIxHf+vdmsT7Sx6xQxjFsyxQekHddzDlBSNf8BAVxHLGhRhg23rFlXPC8tAAJPd2lCLctJbk= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(13017025)(13023025)(5005006)(8121501046)(13018025)(13015025)(13024025)(3002001)(10201501046)(6055026);SRVR:CY4PR03MB2503;BCL:0;PCL:0;RULEID:(400006);SRVR:CY4PR03MB2503; X-Microsoft-Exchange-Diagnostics: 1;CY4PR03MB2503;4:J5t3q2Di6iC0rHvzyzPEkCvf+21AslfmjCL4tBu4P80zou+hDkmWODn4TfkqZ585sUB9oTx0jUTgPcXj+sAdu6pXsQTQUncGst5ELhKw6IeMObGrClNF/+SOdB1jt+Z3UsZ/9O5SpjH1hKYB7x8xqdxcU2Tbsn/edkruL01AHQOsteOQwF3mSvwJscMdL17AfC6TwDHBvem1Q0UzjFJtX//TzJ34shC01QVvxCGUOjukas69e7px1ASQZoUV0e3N29Ap74nrcbKmnRc+ali19pQG26S+SxuHMuDP8R6oCHnYIIAgvr9FerqRbmScwFK5AmxYfeHeuTl/zTAL/WGKI4q9aIzTwdBUoVvEfjbXrYD1I2Xy9eseP6yuXpWUE/ktx6AmmVLwF66ki2JOMy2GKWOchaGYFkdUbk44F5TLkJBNST56hOgFKXF0l32Cm+OJwXYfZWoHarlNxt7AHEIHu811GL65h7XsBiugsAxSzojtQncDQLomkkvo5TqeC9uRBC7DGRO5kES0MW41/dmE7g== X-Forefront-PRVS: 00046D390F X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;CY4PR03MB2503;23:flHAnpttuEessVJGGwdipSk9UeufqC7oS86X1U2fI?= =?us-ascii?Q?goGrju5kYbK7GFWh40uW4Bt82jtcl1GG+CvyCK2sC3wL/JZEhOpd8KmhmlIo?= =?us-ascii?Q?1DkzHb78j5aqxwflJ0PQmXcH/s/YQ84rDbht/lGyU85x28j7H5usdMezkbCv?= =?us-ascii?Q?uodSws7pV5cLVskxanXopF8QV/6kVL7c6jkBqCuHBRxf/iBjmPz6RiBUwPvF?= =?us-ascii?Q?rqf1pZq2tNZO52ZJ4NpryfB2WKJA3wVNmQlUldvZYvV8EOwSanlCftXiB2DD?= =?us-ascii?Q?aqjPUp4biSi/eHuMSNv9iOiR81z0K6lN4O6AQt6ZaP86QjEewt7wV8LRdEig?= =?us-ascii?Q?4guthJY3VwY7O7q5+mgQTv9EN1UoKDCnDSPo+MPD7G5YQBu8dOJ6bF8xLEp7?= =?us-ascii?Q?f+QQDvRH3+tKr96vgvXytz65C8pM7/80/tsWYO4UyXhpBsRPg1LEGyX1BIwZ?= =?us-ascii?Q?oVkrlPnu17S4VkpJsdEwz8PClP//FtShQSUkjil4tDmJ6oA1gCLFW7JbjLfJ?= =?us-ascii?Q?tmI5AqQ1gsaZG2mKKQE29pOpEa4+7BJCbFJGATlcV9nsNJR54D1y1N7a1AkO?= =?us-ascii?Q?LVHDeLHT+5paYDxwlMbIrWxQJeoxsjlgGsRJxsfVbeOUv/kY9RTlzw3H6Gyc?= =?us-ascii?Q?ovev2tSsDf/5aszV5j7HthZOug9laFo1Dpcewoscs68zm2Ue1d4VkZENWtpG?= =?us-ascii?Q?EB2ZxOy+8gQ80BmH5z9twMm1tsDswokp1hwukzPcI4saXQDvGYGOUItrAn81?= =?us-ascii?Q?kVp8Rrh2/zFLF+MPMcS8jAX9JiMCGcSN8TEEgmCYNp+jd5tDKqaLxdB+QvOs?= =?us-ascii?Q?LSzjSpW4UQ7QAj0L9vRogI2p6ZJDPzWBcA08OU8+PjuMKQhV/ZlSW52cdBPN?= =?us-ascii?Q?q/Zks+tLZF8FVGmzZ/0UxfZVugIdmbN7yVx1jjCyOrezsnMaGybPlT1QWJQm?= =?us-ascii?Q?/3PB7J7XPsg/yqIgbFWVRYxP/24TMwA8OmBuX2AlTssjXMdB+9svGqsxkY8A?= =?us-ascii?Q?cr3i5OKGkuLkVLpAmzyUxMNbrNeE3uIL6ZEsGQCVkbdG6TmUJWmaCROw4GNC?= =?us-ascii?Q?PMD0yJHPZXOJBAix+6hKWRH595Q1cKci32eMVJ/KWOo+ATXNW6754yql/tnw?= =?us-ascii?Q?py4oYYHfi6pMCnqmnPlHTtyC9P8w4VNMQ6d+NInDjZ0CEiGvPzbHOxXxMWP8?= =?us-ascii?Q?twWiOCICeBbSGk=3D?= X-Microsoft-Exchange-Diagnostics: 1;CY4PR03MB2503;6:YssLaqvo1KFzeynAmOGR4mcN5zyR1fFnCrNtXiek/MkozVvuRTh+VbqCyI3Sko0fexslZvyLHeZzf+GQnYQHB9XR9HMrJZ71siYq54NL/FeEiGXCNmZNTwXfMxOYCP/RHWDmp8C24DXFqhXmJjIL1JMZq11M9xxinKPllK5R6C5/A2ZiiyTyw96ZUJWI2U3/S5rM5fgF1t6u9I1dVFGFqLBUvGVbDBkxO2AKKybnOMk2qM5MfeX6WQYrwxyO51TbHvMjpH8yY3uziHneRGJhuVeSLYXk3pvkUEKJjO2vXhg=;5:jCGaef3nS++GZnFlHR0w9PxphPmw3wnsmqN/6s1O8FUGHdn1IMpO+/cCHeyVSNUhV7QZ7qwwgAjSfU8pAB35ar94QRpK1iFsr+QDXhm7stb/twXnMKQn9h27IwKNYNJOQP0u7CWY5i9rYyoCPBG9oHXIGZ4C9Zi95f+5YUtk6fU=;24:hWs705dbY+ifM5jxTD+Lg/mzJjdB+Uqnn0DcEsW03QIl4DaF3A7uULsBSdJpH38JPRfDYcO2NBB9ERDSfkxgQUc2PgMJ+QRk+fjLqJsnOvg=;7:l/85tZsQjdDZ2dPebMvXpjGTEYtwk0ySLdgecn6ct4uAaCS34+/zpaM7HwsgFzLYBDaAlZAHx/XBj+rCg4xpQUUBD3mmEt8z/xHj8MZzkE+uS/TjloI0bPwy8MHnXGY/xJne9G3hpk2ElKKKmImA1L2xESytlXQlam8ATXN6M6pp8YGMBHvyRU3LHGV7O3kGRFwizCiLa/2s6rO7l8AboHdMrkr5SMVdQMV7wW4/qdUDqxXXIykzLdXScW/GhrpH SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jul 2016 02:49:37.5039 (UTC) X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e;Ip=[192.88.168.50];Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR03MB2503 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org It was used err_xxx for labeled statement, it is not easy to understand, now use free_xxx for labeled statement. Signed-off-by: Zhao Qiang --- drivers/net/wan/fsl_ucc_hdlc.c | 55 +++++++++++++++++++++--------------------- 1 file changed, 27 insertions(+), 28 deletions(-) diff --git a/drivers/net/wan/fsl_ucc_hdlc.c b/drivers/net/wan/fsl_ucc_hdlc.c index e2b225d..9309c72 100644 --- a/drivers/net/wan/fsl_ucc_hdlc.c +++ b/drivers/net/wan/fsl_ucc_hdlc.c @@ -143,7 +143,7 @@ static int uhdlc_init(struct ucc_hdlc_private *priv) if (!priv->rx_bd_base) { dev_err(priv->dev, "Cannot allocate MURAM memory for RxBDs\n"); ret = -ENOMEM; - goto rxbd_alloc_error; + goto free_uccf; } /* Alloc Tx BD */ @@ -154,7 +154,7 @@ static int uhdlc_init(struct ucc_hdlc_private *priv) if (!priv->tx_bd_base) { dev_err(priv->dev, "Cannot allocate MURAM memory for TxBDs\n"); ret = -ENOMEM; - goto txbd_alloc_error; + goto free_rx_bd; } /* Alloc parameter ram for ucc hdlc */ @@ -164,18 +164,18 @@ static int uhdlc_init(struct ucc_hdlc_private *priv) if (priv->ucc_pram_offset < 0) { dev_err(priv->dev, "Can not allocate MURAM for hdlc prameter.\n"); ret = -ENOMEM; - goto pram_alloc_error; + goto free_tx_bd; } priv->rx_skbuff = kzalloc(priv->rx_ring_size * sizeof(*priv->rx_skbuff), GFP_KERNEL); if (!priv->rx_skbuff) - goto rx_skb_alloc_error; + goto free_ucc_pram; priv->tx_skbuff = kzalloc(priv->tx_ring_size * sizeof(*priv->tx_skbuff), GFP_KERNEL); if (!priv->tx_skbuff) - goto tx_skb_alloc_error; + goto free_rx_skbuff; priv->skb_curtx = 0; priv->skb_dirtytx = 0; @@ -200,14 +200,14 @@ static int uhdlc_init(struct ucc_hdlc_private *priv) if (riptr < 0) { dev_err(priv->dev, "Cannot allocate MURAM mem for Receive internal temp data pointer\n"); ret = -ENOMEM; - goto riptr_alloc_error; + goto free_tx_skbuff; } tiptr = qe_muram_alloc(32, 32); if (tiptr < 0) { dev_err(priv->dev, "Cannot allocate MURAM mem for Transmit internal temp data pointer\n"); ret = -ENOMEM; - goto tiptr_alloc_error; + goto free_riptr; } /* Set RIPTR, TIPTR */ @@ -247,7 +247,7 @@ static int uhdlc_init(struct ucc_hdlc_private *priv) if (!bd_buffer) { dev_err(priv->dev, "Could not allocate buffer descriptors\n"); ret = -ENOMEM; - goto bd_alloc_error; + goto free_tiptr; } memset(bd_buffer, 0, (RX_BD_RING_LEN + TX_BD_RING_LEN) @@ -283,25 +283,25 @@ static int uhdlc_init(struct ucc_hdlc_private *priv) return 0; -bd_alloc_error: +free_tiptr: qe_muram_free(tiptr); -tiptr_alloc_error: +free_riptr: qe_muram_free(riptr); -riptr_alloc_error: +free_tx_skbuff: kfree(priv->tx_skbuff); -tx_skb_alloc_error: +free_rx_skbuff: kfree(priv->rx_skbuff); -rx_skb_alloc_error: +free_ucc_pram: qe_muram_free(priv->ucc_pram_offset); -pram_alloc_error: +free_tx_bd: dma_free_coherent(priv->dev, TX_BD_RING_LEN * sizeof(struct qe_bd), priv->tx_bd_base, priv->dma_tx_bd); -txbd_alloc_error: +free_rx_bd: dma_free_coherent(priv->dev, RX_BD_RING_LEN * sizeof(struct qe_bd), priv->rx_bd_base, priv->dma_rx_bd); -rxbd_alloc_error: +free_uccf: ucc_fast_free(priv->uccf); return ret; @@ -1068,9 +1068,7 @@ static int ucc_hdlc_probe(struct platform_device *pdev) uhdlc_priv = kzalloc(sizeof(*uhdlc_priv), GFP_KERNEL); if (!uhdlc_priv) { - ret = -ENOMEM; - dev_err(&pdev->dev, "No mem to alloc hdlc private data\n"); - goto err_alloc_priv; + return -ENOMEM; } dev_set_drvdata(&pdev->dev, uhdlc_priv); @@ -1088,25 +1086,25 @@ static int ucc_hdlc_probe(struct platform_device *pdev) if (!utdm) { ret = -ENOMEM; dev_err(&pdev->dev, "No mem to alloc ucc tdm data\n"); - goto err_alloc_utdm; + goto free_uhdlc_priv; } uhdlc_priv->utdm = utdm; ret = ucc_of_parse_tdm(np, utdm, ut_info); if (ret) - goto err_miss_tsa_property; + goto free_utdm; } ret = uhdlc_init(uhdlc_priv); if (ret) { dev_err(&pdev->dev, "Failed to init uhdlc\n"); - goto err_hdlc_init; + goto free_utdm; } dev = alloc_hdlcdev(uhdlc_priv); if (!dev) { ret = -ENOMEM; pr_err("ucc_hdlc: unable to allocate memory\n"); - goto err_hdlc_init; + goto undo_uhdlc_init; } uhdlc_priv->ndev = dev; @@ -1120,18 +1118,19 @@ static int ucc_hdlc_probe(struct platform_device *pdev) ret = -ENOBUFS; pr_err("ucc_hdlc: unable to register hdlc device\n"); free_netdev(dev); - goto err_hdlc_init; + goto free_dev; } return 0; -err_hdlc_init: -err_miss_tsa_property: +free_dev: + free_netdev(dev); +undo_uhdlc_init: +free_utdm: if (uhdlc_priv->tsa) kfree(utdm); -err_alloc_utdm: +free_uhdlc_priv: kfree(uhdlc_priv); -err_alloc_priv: return ret; } -- 2.1.0.27.g96db324