From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stephen Hemminger Subject: Re: [PATCH] librte_ether: release memory in uninit function. Date: Thu, 25 Jun 2015 10:41:21 -0400 Message-ID: <20150625104121.3d71c96e@uryu.home.lan> References: <1435242628-8619-1-git-send-email-bernard.iremonger@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: dev@dpdk.org To: Bernard Iremonger Return-path: Received: from mail-ig0-f171.google.com (mail-ig0-f171.google.com [209.85.213.171]) by dpdk.org (Postfix) with ESMTP id 0B0EAC682 for ; Thu, 25 Jun 2015 16:41:24 +0200 (CEST) Received: by igcsj18 with SMTP id sj18so10057240igc.1 for ; Thu, 25 Jun 2015 07:41:23 -0700 (PDT) In-Reply-To: <1435242628-8619-1-git-send-email-bernard.iremonger@intel.com> 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" On Thu, 25 Jun 2015 15:30:28 +0100 Bernard Iremonger wrote: > Signed-off-by: Bernard Iremonger > --- > lib/librte_ether/rte_ethdev.c | 8 +++++++- > 1 files changed, 7 insertions(+), 1 deletions(-) > > diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c > index e13fde5..2404556 100644 > --- a/lib/librte_ether/rte_ethdev.c > +++ b/lib/librte_ether/rte_ethdev.c > @@ -369,8 +369,14 @@ rte_eth_dev_uninit(struct rte_pci_device *pci_dev) > /* free ether device */ > rte_eth_dev_release_port(eth_dev); > > - if (rte_eal_process_type() == RTE_PROC_PRIMARY) > + if (rte_eal_process_type() == RTE_PROC_PRIMARY) { > + rte_free(eth_dev->data->rx_queues); > + rte_free(eth_dev->data->tx_queues); > rte_free(eth_dev->data->dev_private); > + rte_free(eth_dev->data->mac_addrs); > + rte_free(eth_dev->data->hash_mac_addrs); > + memset(eth_dev->data, 0, sizeof(struct rte_eth_dev_data)); Glad to see this problem addressed. I would prefer that the component that created the object be responsible for doing its own cleanup.