From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tetsuya Mukawa Subject: [PATCH v2] eal: Fix wrong resource release while unmapping pci devices Date: Thu, 16 Jun 2016 11:33:10 +0900 Message-ID: <1466044391-3210-2-git-send-email-mukawa@igel.co.jp> References: <1466044391-3210-1-git-send-email-mukawa@igel.co.jp> Cc: david.marchand@6wind.com, john.mcnamara@intel.com, michalx.k.jastrzebski@intel.com, Tetsuya Mukawa To: dev@dpdk.org Return-path: Received: from mail-pf0-f179.google.com (mail-pf0-f179.google.com [209.85.192.179]) by dpdk.org (Postfix) with ESMTP id 2EBA3C4D2 for ; Thu, 16 Jun 2016 04:33:33 +0200 (CEST) Received: by mail-pf0-f179.google.com with SMTP id c2so14769259pfa.2 for ; Wed, 15 Jun 2016 19:33:33 -0700 (PDT) In-Reply-To: <1466044391-3210-1-git-send-email-mukawa@igel.co.jp> In-Reply-To: <1465961221-28357-1-git-send-email-mukawa@igel.co.jp> References: <1465961221-28357-1-git-send-email-mukawa@igel.co.jp> 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" This patch fixes wrong resource release of pci_uio_unmap(). The 'path' member of mapped_pci_resource structure is allocated by primary process, but currently it will be freed by both primary and secondary process. The patch fixes to be freed by only primary process. Signed-off-by: Tetsuya Mukawa --- lib/librte_eal/common/eal_common_pci_uio.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/librte_eal/common/eal_common_pci_uio.c b/lib/librte_eal/common/eal_common_pci_uio.c index f062e81..488b6dd 100644 --- a/lib/librte_eal/common/eal_common_pci_uio.c +++ b/lib/librte_eal/common/eal_common_pci_uio.c @@ -159,7 +159,9 @@ pci_uio_unmap(struct mapped_pci_resource *uio_res) for (i = 0; i != uio_res->nb_maps; i++) { pci_unmap_resource(uio_res->maps[i].addr, (size_t)uio_res->maps[i].size); - rte_free(uio_res->maps[i].path); + + if (rte_eal_process_type() == RTE_PROC_PRIMARY) + rte_free(uio_res->maps[i].path); } } -- 2.7.4