[dpdk-dev,v5,15/70] net/bnx2x: use contiguous allocation for DMA memory

Message ID 970ea202e2435fa077a2bd3d6a2cafc8a551becb.1523296700.git.anatoly.burakov@intel.com (mailing list archive)
State Superseded, archived
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation fail apply patch file failure

Commit Message

Anatoly Burakov April 9, 2018, 6 p.m. UTC
  All hardware drivers should allocate IOVA-contiguous
memzones for their hardware resources.

Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Tested-by: Santosh Shukla <Santosh.Shukla@caviumnetworks.com>
Tested-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---

Notes:
    v4:
    - Use new memzone flag instead of new API
    - Remove experimental API from build files
    
    v3:
    - Add experimental API to build files
    - Moved patch earlier in the patchset

 drivers/net/bnx2x/bnx2x.c      | 2 +-
 drivers/net/bnx2x/bnx2x_rxtx.c | 3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)
  

Comments

Thomas Monjalon April 11, 2018, 9:12 a.m. UTC | #1
Compilation error with clang:

09/04/2018 20:00, Anatoly Burakov:
> --- a/drivers/net/bnx2x/bnx2x.c
> +++ b/drivers/net/bnx2x/bnx2x.c
> -	z = rte_memzone_reserve_aligned(mz_name, (uint64_t) (size),
> +	z = rte_memzone_reserve_aligned_contig(mz_name, (uint64_t)size,

drivers/net/bnx2x/bnx2x.c:180:6: fatal error:
	implicit declaration of function 'rte_memzone_reserve_aligned_contig'
	is invalid in C99
  
Anatoly Burakov April 11, 2018, 9:18 a.m. UTC | #2
On 11-Apr-18 10:12 AM, Thomas Monjalon wrote:
> Compilation error with clang:
> 
> 09/04/2018 20:00, Anatoly Burakov:
>> --- a/drivers/net/bnx2x/bnx2x.c
>> +++ b/drivers/net/bnx2x/bnx2x.c
>> -	z = rte_memzone_reserve_aligned(mz_name, (uint64_t) (size),
>> +	z = rte_memzone_reserve_aligned_contig(mz_name, (uint64_t)size,
> 
> drivers/net/bnx2x/bnx2x.c:180:6: fatal error:
> 	implicit declaration of function 'rte_memzone_reserve_aligned_contig'
> 	is invalid in C99
> 
> 
> 
> 

Apologies, missed the rename. This API call doesn't exist any more.
  

Patch

diff --git a/drivers/net/bnx2x/bnx2x.c b/drivers/net/bnx2x/bnx2x.c
index fb02d0f..81f5dae 100644
--- a/drivers/net/bnx2x/bnx2x.c
+++ b/drivers/net/bnx2x/bnx2x.c
@@ -177,7 +177,7 @@  bnx2x_dma_alloc(struct bnx2x_softc *sc, size_t size, struct bnx2x_dma *dma,
 			rte_get_timer_cycles());
 
 	/* Caller must take care that strlen(mz_name) < RTE_MEMZONE_NAMESIZE */
-	z = rte_memzone_reserve_aligned(mz_name, (uint64_t) (size),
+	z = rte_memzone_reserve_aligned_contig(mz_name, (uint64_t)size,
 					SOCKET_ID_ANY,
 					0, align);
 	if (z == NULL) {
diff --git a/drivers/net/bnx2x/bnx2x_rxtx.c b/drivers/net/bnx2x/bnx2x_rxtx.c
index a0d4ac9..6be7277 100644
--- a/drivers/net/bnx2x/bnx2x_rxtx.c
+++ b/drivers/net/bnx2x/bnx2x_rxtx.c
@@ -26,7 +26,8 @@  ring_dma_zone_reserve(struct rte_eth_dev *dev, const char *ring_name,
 	if (mz)
 		return mz;
 
-	return rte_memzone_reserve_aligned(z_name, ring_size, socket_id, 0, BNX2X_PAGE_SIZE);
+	return rte_memzone_reserve_aligned(z_name, ring_size, socket_id,
+			RTE_MEMZONE_IOVA_CONTIG, BNX2X_PAGE_SIZE);
 }
 
 static void