Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1613891

[PATCH V2 net-next 15/18] net: hns: Simplify the exception sequence in hns_ppe_init()

From Salil Mehta <salil.mehta@huawei.com>
Newsgroups linux.kernel
Subject [PATCH V2 net-next 15/18] net: hns: Simplify the exception sequence in hns_ppe_init()
Date 2017-03-31 13:30 +0200
Message-ID <tr2UG-3Xe-25@gated-at.bofh.it> (permalink)
References <tr2UF-3Xe-3@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


From: Kejian Yan <yankejian@huawei.com>

We need to free all ppe submodule if it fails to initialize ppe by
any fault, so this patch will free all ppe resource before
hns_ppe_init() returns exception situation

Reported-by: JinchuanTian <tianjinchuan1@huawei.com>
Signed-off-by: Kejian Yan <yankejian@huawei.com>
Reviewed-by: Salil Mehta <salil.mehta@huawei.com>
Signed-off-by: Salil Mehta <salil.mehta@huawei.com>
---
 drivers/net/ethernet/hisilicon/hns/hns_dsaf_ppe.c | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)

diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_ppe.c b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_ppe.c
index 6ea8722..eba406b 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_ppe.c
+++ b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_ppe.c
@@ -496,17 +496,17 @@ void hns_ppe_get_stats(struct hns_ppe_cb *ppe_cb, u64 *data)
  */
 int hns_ppe_init(struct dsaf_device *dsaf_dev)
 {
-	int i, k;
 	int ret;
+	int i;
 
 	for (i = 0; i < HNS_PPE_COM_NUM; i++) {
 		ret = hns_ppe_common_get_cfg(dsaf_dev, i);
 		if (ret)
-			goto get_ppe_cfg_fail;
+			goto get_cfg_fail;
 
 		ret = hns_rcb_common_get_cfg(dsaf_dev, i);
 		if (ret)
-			goto get_rcb_cfg_fail;
+			goto get_cfg_fail;
 
 		hns_ppe_get_cfg(dsaf_dev->ppe_common[i]);
 
@@ -518,13 +518,12 @@ int hns_ppe_init(struct dsaf_device *dsaf_dev)
 
 	return 0;
 
-get_rcb_cfg_fail:
-	hns_ppe_common_free_cfg(dsaf_dev, i);
-get_ppe_cfg_fail:
-	for (k = i - 1; k >= 0; k--) {
-		hns_rcb_common_free_cfg(dsaf_dev, k);
-		hns_ppe_common_free_cfg(dsaf_dev, k);
+get_cfg_fail:
+	for (i = 0; i < HNS_PPE_COM_NUM; i++) {
+		hns_rcb_common_free_cfg(dsaf_dev, i);
+		hns_ppe_common_free_cfg(dsaf_dev, i);
 	}
+
 	return ret;
 }
 
-- 
2.7.4

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH V2 net-next 00/18] net: hns: Misc. HNS Bug Fixes & Code Improvements Salil Mehta <salil.mehta@huawei.com> - 2017-03-31 13:30 +0200
  [PATCH V2 net-next 02/18] net: hns: Modify GMAC init TX threshold value Salil Mehta <salil.mehta@huawei.com> - 2017-03-31 13:30 +0200
  [PATCH V2 net-next 15/18] net: hns: Simplify the exception sequence in hns_ppe_init() Salil Mehta <salil.mehta@huawei.com> - 2017-03-31 13:30 +0200
  [PATCH V2 net-next 17/18] net: hns: Avoid Hip06 chip TX packet line bug Salil Mehta <salil.mehta@huawei.com> - 2017-03-31 13:30 +0200
  [PATCH V2 net-next 09/18] net: hns: Correct HNS RSS key set function Salil Mehta <salil.mehta@huawei.com> - 2017-03-31 13:30 +0200
  [PATCH V2 net-next 04/18] net: hns: Remove redundant memset during buffer release Salil Mehta <salil.mehta@huawei.com> - 2017-03-31 13:30 +0200
  [PATCH V2 net-next 16/18] net: hns: Adjust the SBM module buffer threshold Salil Mehta <salil.mehta@huawei.com> - 2017-03-31 13:30 +0200
  [PATCH V2 net-next 07/18] net: hns: Fix to adjust buf_size of ring according to mtu Salil Mehta <salil.mehta@huawei.com> - 2017-03-31 13:30 +0200
  [PATCH V2 net-next 14/18] net: hns: Optimise the code in hns_mdio_wait_ready() Salil Mehta <salil.mehta@huawei.com> - 2017-03-31 13:30 +0200
  [PATCH V2 net-next 11/18] net: hns: Remove redundant mac_get_id() Salil Mehta <salil.mehta@huawei.com> - 2017-03-31 13:30 +0200

csiph-web