[dpdk-stable] patch 'net/i40e/base: gracefully clean the resources' has been queued to stable release 18.08.1

Kevin Traynor ktraynor at redhat.com
Wed Nov 21 17:47:34 CET 2018


Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/27/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From 6e69e70467764112b03d2c0fad8c3a2997fbf8d2 Mon Sep 17 00:00:00 2001
From: Qi Zhang <qi.z.zhang at intel.com>
Date: Tue, 25 Sep 2018 10:34:32 +0800
Subject: [PATCH] net/i40e/base: gracefully clean the resources

[ upstream commit 49ea51605be46b48b12c2267b7c2a12d5ed1ed07 ]

Allocated resources were not freed in the event of failure in
i40e_init_asq function. This patch gracefully handles all failures.

Signed-off-by: Qi Zhang <qi.z.zhang at intel.com>
Acked-by: Beilei Xing <beilei.xing at intel.com>
---
 drivers/net/i40e/base/i40e_adminq.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/net/i40e/base/i40e_adminq.c b/drivers/net/i40e/base/i40e_adminq.c
index 612be8839..0ca270eac 100644
--- a/drivers/net/i40e/base/i40e_adminq.c
+++ b/drivers/net/i40e/base/i40e_adminq.c
@@ -127,4 +127,5 @@ enum i40e_status_code i40e_alloc_adminq_arq_ring(struct i40e_hw *hw)
 void i40e_free_adminq_asq(struct i40e_hw *hw)
 {
+	i40e_free_virt_mem(hw, &hw->aq.asq.cmd_buf);
 	i40e_free_dma_mem(hw, &hw->aq.asq.desc_buf);
 }
@@ -434,5 +435,5 @@ enum i40e_status_code i40e_init_asq(struct i40e_hw *hw)
 	ret_code = i40e_config_asq_regs(hw);
 	if (ret_code != I40E_SUCCESS)
-		goto init_adminq_free_rings;
+		goto init_config_regs;
 
 	/* success! */
@@ -442,4 +443,8 @@ enum i40e_status_code i40e_init_asq(struct i40e_hw *hw)
 init_adminq_free_rings:
 	i40e_free_adminq_asq(hw);
+	return ret_code;
+
+init_config_regs:
+	i40e_free_asq_bufs(hw);
 
 init_adminq_exit:
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-21 16:44:31.477720594 +0000
+++ 0020-net-i40e-base-gracefully-clean-the-resources.patch	2018-11-21 16:44:30.000000000 +0000
@@ -1,13 +1,13 @@
-From 49ea51605be46b48b12c2267b7c2a12d5ed1ed07 Mon Sep 17 00:00:00 2001
+From 6e69e70467764112b03d2c0fad8c3a2997fbf8d2 Mon Sep 17 00:00:00 2001
 From: Qi Zhang <qi.z.zhang at intel.com>
 Date: Tue, 25 Sep 2018 10:34:32 +0800
 Subject: [PATCH] net/i40e/base: gracefully clean the resources
 
+[ upstream commit 49ea51605be46b48b12c2267b7c2a12d5ed1ed07 ]
+
 Allocated resources were not freed in the event of failure in
 i40e_init_asq function. This patch gracefully handles all failures.
 
-Cc: stable at dpdk.org
-
 Signed-off-by: Qi Zhang <qi.z.zhang at intel.com>
 Acked-by: Beilei Xing <beilei.xing at intel.com>
 ---
@@ -15,23 +15,23 @@
  1 file changed, 6 insertions(+), 1 deletion(-)
 
 diff --git a/drivers/net/i40e/base/i40e_adminq.c b/drivers/net/i40e/base/i40e_adminq.c
-index 5736e0cb3..bb4c5c61e 100644
+index 612be8839..0ca270eac 100644
 --- a/drivers/net/i40e/base/i40e_adminq.c
 +++ b/drivers/net/i40e/base/i40e_adminq.c
-@@ -98,4 +98,5 @@ enum i40e_status_code i40e_alloc_adminq_arq_ring(struct i40e_hw *hw)
+@@ -127,4 +127,5 @@ enum i40e_status_code i40e_alloc_adminq_arq_ring(struct i40e_hw *hw)
  void i40e_free_adminq_asq(struct i40e_hw *hw)
  {
 +	i40e_free_virt_mem(hw, &hw->aq.asq.cmd_buf);
  	i40e_free_dma_mem(hw, &hw->aq.asq.desc_buf);
  }
-@@ -405,5 +406,5 @@ enum i40e_status_code i40e_init_asq(struct i40e_hw *hw)
+@@ -434,5 +435,5 @@ enum i40e_status_code i40e_init_asq(struct i40e_hw *hw)
  	ret_code = i40e_config_asq_regs(hw);
  	if (ret_code != I40E_SUCCESS)
 -		goto init_adminq_free_rings;
 +		goto init_config_regs;
  
  	/* success! */
-@@ -413,4 +414,8 @@ enum i40e_status_code i40e_init_asq(struct i40e_hw *hw)
+@@ -442,4 +443,8 @@ enum i40e_status_code i40e_init_asq(struct i40e_hw *hw)
  init_adminq_free_rings:
  	i40e_free_adminq_asq(hw);
 +	return ret_code;


More information about the stable mailing list