[dpdk-dev,v2,5/6] ena: fix memory management issue

Message ID 1466510763-19569-6-git-send-email-jan@semihalf.com (mailing list archive)
State Changes Requested, archived
Delegated to: Bruce Richardson
Headers

Commit Message

Jan Medala June 21, 2016, 12:06 p.m. UTC
  After allocating memzone it's required to zeroize memory in it.
Freeing memzone with function dedicated for memoryzones.

Signed-off-by: Alexander Matushevsky <matua@amazon.com>
Signed-off-by: Jakub Palider <jpa@semihalf.com>
Signed-off-by: Jan Medala <jan@semihalf.com>
---
 drivers/net/ena/base/ena_plat_dpdk.h | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
  

Comments

Jan Medala June 30, 2016, 3:04 p.m. UTC | #1
v2: As requested, big patch splitted into logical pieces for easier review.
Improved style and fixed icc compiler issues.

v3: Added commit messages to clarify patch purpose and minor changes

Jan Medala (6):
  ena: update of ENA communication layer
  ena: add debug area and host information
  ena: disable readless communication regarding to HW revision
  ena: allocate coherent memory in node-aware way
  ena: fix memory management issue
  ena: fix for icc compiler

 drivers/net/ena/base/ena_com.c                  | 254 +++++++-------
 drivers/net/ena/base/ena_com.h                  |  82 +++--
 drivers/net/ena/base/ena_defs/ena_admin_defs.h  | 107 +-----
 drivers/net/ena/base/ena_defs/ena_eth_io_defs.h | 436 ++++++------------------
 drivers/net/ena/base/ena_defs/ena_gen_info.h    |   4 +-
 drivers/net/ena/base/ena_eth_com.c              |  32 +-
 drivers/net/ena/base/ena_eth_com.h              |  14 +
 drivers/net/ena/base/ena_plat_dpdk.h            |  42 ++-
 drivers/net/ena/ena_ethdev.c                    | 272 ++++++++++++++-
 drivers/net/ena/ena_ethdev.h                    |  39 +++
 10 files changed, 671 insertions(+), 611 deletions(-)
  
Bruce Richardson July 8, 2016, 1:24 p.m. UTC | #2
On Thu, Jun 30, 2016 at 05:04:53PM +0200, Jan Medala wrote:
> v2: As requested, big patch splitted into logical pieces for easier review.
> Improved style and fixed icc compiler issues.
> 
> v3: Added commit messages to clarify patch purpose and minor changes
> 
> Jan Medala (6):
>   ena: update of ENA communication layer
>   ena: add debug area and host information
>   ena: disable readless communication regarding to HW revision
>   ena: allocate coherent memory in node-aware way
>   ena: fix memory management issue
>   ena: fix for icc compiler
> 
Applied to dpdk-next-net/rel_16_07 with patch 6 squashed into patch 1

/Bruce
  

Patch

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 {								\