[dpdk-stable] patch 'net/i40e/base: gracefully clean the resources' has been queued to LTS release 16.11.9
Luca Boccassi
bluca at debian.org
Mon Oct 15 13:51:24 CEST 2018
Hi,
FYI, your patch has been queued to LTS release 16.11.9
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 10/17/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.
Luca Boccassi
---
>From 675e3710dfcda4e3ff7b4edb67a5e5ef57c7dbdc 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 e231582c54..4d3f938e18 100644
--- a/drivers/net/i40e/base/i40e_adminq.c
+++ b/drivers/net/i40e/base/i40e_adminq.c
@@ -126,6 +126,7 @@ 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);
}
@@ -433,7 +434,7 @@ enum i40e_status_code i40e_init_asq(struct i40e_hw *hw)
/* initialize base registers */
ret_code = i40e_config_asq_regs(hw);
if (ret_code != I40E_SUCCESS)
- goto init_adminq_free_rings;
+ goto init_config_regs;
/* success! */
hw->aq.asq.count = hw->aq.num_asq_entries;
@@ -441,6 +442,10 @@ 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:
return ret_code;
--
2.19.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-10-15 12:48:34.723774107 +0100
+++ 0004-net-i40e-base-gracefully-clean-the-resources.patch 2018-10-15 12:48:34.501096017 +0100
@@ -1,13 +1,13 @@
-From 49ea51605be46b48b12c2267b7c2a12d5ed1ed07 Mon Sep 17 00:00:00 2001
+From 675e3710dfcda4e3ff7b4edb67a5e5ef57c7dbdc 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,10 +15,10 @@
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 5736e0cb31..bb4c5c61e7 100644
+index e231582c54..4d3f938e18 100644
--- a/drivers/net/i40e/base/i40e_adminq.c
+++ b/drivers/net/i40e/base/i40e_adminq.c
-@@ -97,6 +97,7 @@ enum i40e_status_code i40e_alloc_adminq_arq_ring(struct i40e_hw *hw)
+@@ -126,6 +126,7 @@ enum i40e_status_code i40e_alloc_adminq_arq_ring(struct i40e_hw *hw)
**/
void i40e_free_adminq_asq(struct i40e_hw *hw)
{
@@ -26,7 +26,7 @@
i40e_free_dma_mem(hw, &hw->aq.asq.desc_buf);
}
-@@ -404,7 +405,7 @@ enum i40e_status_code i40e_init_asq(struct i40e_hw *hw)
+@@ -433,7 +434,7 @@ enum i40e_status_code i40e_init_asq(struct i40e_hw *hw)
/* initialize base registers */
ret_code = i40e_config_asq_regs(hw);
if (ret_code != I40E_SUCCESS)
@@ -35,7 +35,7 @@
/* success! */
hw->aq.asq.count = hw->aq.num_asq_entries;
-@@ -412,6 +413,10 @@ enum i40e_status_code i40e_init_asq(struct i40e_hw *hw)
+@@ -441,6 +442,10 @@ enum i40e_status_code i40e_init_asq(struct i40e_hw *hw)
init_adminq_free_rings:
i40e_free_adminq_asq(hw);
More information about the stable
mailing list