From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jan Medala Subject: [PATCH v3 5/6] ena: fix memory management issue Date: Thu, 30 Jun 2016 17:04:58 +0200 Message-ID: <1467299099-32498-6-git-send-email-jan@semihalf.com> References: <1466510763-19569-6-git-send-email-jan@semihalf.com> <1467299099-32498-1-git-send-email-jan@semihalf.com> Cc: ferruh.yigit@intel.com, bruce.richardson@intel.com, Jan Medala , Alexander Matushevsky , Jakub Palider To: dev@dpdk.org Return-path: Received: from mail-lf0-f49.google.com (mail-lf0-f49.google.com [209.85.215.49]) by dpdk.org (Postfix) with ESMTP id D796A2C51 for ; Thu, 30 Jun 2016 17:05:15 +0200 (CEST) Received: by mail-lf0-f49.google.com with SMTP id l188so57587165lfe.2 for ; Thu, 30 Jun 2016 08:05:15 -0700 (PDT) In-Reply-To: <1467299099-32498-1-git-send-email-jan@semihalf.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" After allocating memzone it's required to zeroize memory in it. Freeing memzone with function dedicated for memoryzones. Signed-off-by: Alexander Matushevsky Signed-off-by: Jakub Palider Signed-off-by: Jan Medala --- drivers/net/ena/base/ena_plat_dpdk.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/net/ena/base/ena_plat_dpdk.h b/drivers/net/ena/base/ena_plat_dpdk.h index b1ed80c..87c3bf1 100644 --- a/drivers/net/ena/base/ena_plat_dpdk.h +++ b/drivers/net/ena/base/ena_plat_dpdk.h @@ -62,7 +62,7 @@ typedef uint64_t dma_addr_t; #endif #define ena_atomic32_t rte_atomic32_t -#define ena_mem_handle_t void * +#define ena_mem_handle_t const struct rte_memzone * #define SZ_256 (256U) #define SZ_4K (4096U) @@ -188,13 +188,15 @@ typedef uint64_t dma_addr_t; snprintf(z_name, sizeof(z_name), \ "ena_alloc_%d", ena_alloc_cnt++); \ mz = rte_memzone_reserve(z_name, size, SOCKET_ID_ANY, 0); \ + memset(mz->addr, 0, size); \ virt = mz->addr; \ phys = mz->phys_addr; \ + handle = mz; \ } while (0) #define ENA_MEM_FREE_COHERENT(dmadev, size, virt, phys, handle) \ ({ ENA_TOUCH(size); ENA_TOUCH(phys); \ ENA_TOUCH(dmadev); \ - rte_free(virt); }) + rte_memzone_free(handle); }) #define ENA_MEM_ALLOC_COHERENT_NODE(dmadev, size, virt, phys, node, dev_node) \ do { \ -- 2.8.2