Signed-off-by: Bernard Iremonger <bernard.iremonger at intel.com>
---
 lib/librte_pmd_i40e/i40e_ethdev.c |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/lib/librte_pmd_i40e/i40e_ethdev.c 
b/lib/librte_pmd_i40e/i40e_ethdev.c
index e21ebed..5cff6df 100644
--- a/lib/librte_pmd_i40e/i40e_ethdev.c
+++ b/lib/librte_pmd_i40e/i40e_ethdev.c
@@ -623,7 +623,8 @@ eth_i40e_dev_uninit(struct rte_eth_dev *dev)
        memset(&settings, 0, sizeof(settings));
        ret = i40e_set_filter_control(hw, &settings);
        if (ret)
-               PMD_INIT_LOG(WARNING, "setup_pf_filter_control failed: %d",     
ret);
+               PMD_INIT_LOG(WARNING, "setup_pf_filter_control failed: %d",
+                               ret);

        /* Disable flow control */
        hw->fc.requested_mode = I40E_FC_NONE;
@@ -1021,6 +1022,7 @@ i40e_dev_close(struct rte_eth_dev *dev)
        struct i40e_pf *pf = I40E_DEV_PRIVATE_TO_PF(dev->data->dev_private);
        struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
        uint32_t reg;
+       int i;

        PMD_INIT_FUNC_TRACE();

@@ -1038,6 +1040,12 @@ i40e_dev_close(struct rte_eth_dev *dev)
        i40e_fdir_teardown(pf);
        i40e_vsi_release(pf->main_vsi);

+       for (i = 0; i < pf->nb_cfg_vmdq_vsi; i++)
+               i40e_vsi_release(pf->vmdq[i].vsi);
+
+       rte_free(pf->vmdq);
+       pf->vmdq = NULL;
+
        /* shutdown the adminq */
        i40e_aq_queue_shutdown(hw, true);
        i40e_shutdown_adminq(hw);
-- 
1.7.4.1

Reply via email to