[dpdk-dev] [PATCH v4 03/13] net/enetc: fix big endian build and correct buffer allocation
Gagandeep Singh
G.Singh at nxp.com
Fri Apr 12 14:28:56 CEST 2019
There was an error at rte_constant_bswap64 while compiling
with big endian toolchain. so fixing it by adding type cast.
Also, rte_pktmbuf_alloc API should be used to allocate mbuf
instead of rte_pktmbuf_raw_alloc to avoid use of stale mbuf
information.
Fixes: 469c6111a799 ("net/enetc: enable Rx and Tx")
Cc: stable at dpdk.org
Suggested-by: Thomas Monjalon <thomas at monjalon.net>
Signed-off-by: Gagandeep Singh <g.singh at nxp.com>
---
drivers/net/enetc/enetc_rxtx.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/net/enetc/enetc_rxtx.c b/drivers/net/enetc/enetc_rxtx.c
index a31a38725..42f16cab1 100644
--- a/drivers/net/enetc/enetc_rxtx.c
+++ b/drivers/net/enetc/enetc_rxtx.c
@@ -88,8 +88,9 @@ enetc_refill_rx_ring(struct enetc_bdr *rx_ring, const int buff_cnt)
rx_swbd = &rx_ring->q_swbd[i];
rxbd = ENETC_RXBD(*rx_ring, i);
for (j = 0; j < buff_cnt; j++) {
- rx_swbd->buffer_addr =
- rte_cpu_to_le_64(rte_mbuf_raw_alloc(rx_ring->mb_pool));
+ rx_swbd->buffer_addr = (void *)(uintptr_t)
+ rte_cpu_to_le_64((uint64_t)(uintptr_t)
+ rte_pktmbuf_alloc(rx_ring->mb_pool));
rxbd->w.addr = (uint64_t)(uintptr_t)
rx_swbd->buffer_addr->buf_iova +
rx_swbd->buffer_addr->data_off;
--
2.19.1
More information about the dev
mailing list