From patchwork Thu Apr 30 15:41:23 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Iremonger, Bernard" X-Patchwork-Id: 4593 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id 08F41CD7F; Thu, 30 Apr 2015 17:41:30 +0200 (CEST) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id 90CACCD7D for ; Thu, 30 Apr 2015 17:41:28 +0200 (CEST) Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga103.fm.intel.com with ESMTP; 30 Apr 2015 08:41:27 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.11,677,1422950400"; d="scan'208";a="487730411" Received: from irvmail001.ir.intel.com ([163.33.26.43]) by FMSMGA003.fm.intel.com with ESMTP; 30 Apr 2015 08:41:26 -0700 Received: from sivswdev01.ir.intel.com (sivswdev01.ir.intel.com [10.237.217.45]) by irvmail001.ir.intel.com (8.14.3/8.13.6/MailSET/Hub) with ESMTP id t3UFfQT3003789; Thu, 30 Apr 2015 16:41:26 +0100 Received: from sivswdev01.ir.intel.com (localhost [127.0.0.1]) by sivswdev01.ir.intel.com with ESMTP id t3UFfPHL017794; Thu, 30 Apr 2015 16:41:25 +0100 Received: (from bairemon@localhost) by sivswdev01.ir.intel.com with id t3UFfPVH017790; Thu, 30 Apr 2015 16:41:25 +0100 From: Bernard Iremonger To: dev@dpdk.org Date: Thu, 30 Apr 2015 16:41:23 +0100 Message-Id: <1430408483-17680-1-git-send-email-bernard.iremonger@intel.com> X-Mailer: git-send-email 1.7.4.1 In-Reply-To: References: Subject: [dpdk-dev] [RFC PATCH 2/4] librte_pmd_i40e: release vmdq vsi's in dev_close X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Signed-off-by: Bernard Iremonger --- 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);