From 896d9372062e2f63033a607cc5893111e057cd98 Mon Sep 17 00:00:00 2001 From: Gagandeep Singh Date: Wed, 23 Oct 2019 11:35:59 +0530 Subject: [PATCH] net/enetc: fix BD ring alignment enetc BD rings should be aligned to 128 instead of RTE_CACHE_LINE_SIZE. Fixes: 469c6111a799 ("net/enetc: enable Rx and Tx") Cc: stable@dpdk.org Signed-off-by: Gagandeep Singh --- drivers/net/enetc/base/enetc_hw.h | 3 +++ drivers/net/enetc/enetc_ethdev.c | 8 ++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/drivers/net/enetc/base/enetc_hw.h b/drivers/net/enetc/base/enetc_hw.h index fd71155ee8..2fe7ccb5bb 100644 --- a/drivers/net/enetc/base/enetc_hw.h +++ b/drivers/net/enetc/base/enetc_hw.h @@ -12,6 +12,9 @@ #define ENETC_DEV_ID_VF 0xef00 #define ENETC_DEV_ID 0xe100 +/* BD RING ALIGNMENT */ +#define ENETC_BD_RING_ALIGN 128 + /* ENETC register block BAR */ #define ENETC_BAR_REGS 0x0 diff --git a/drivers/net/enetc/enetc_ethdev.c b/drivers/net/enetc/enetc_ethdev.c index dc05c00ff5..4e978348c4 100644 --- a/drivers/net/enetc/enetc_ethdev.c +++ b/drivers/net/enetc/enetc_ethdev.c @@ -178,12 +178,12 @@ enetc_alloc_txbdr(struct enetc_bdr *txr, uint16_t nb_desc) int size; size = nb_desc * sizeof(struct enetc_swbd); - txr->q_swbd = rte_malloc(NULL, size, RTE_CACHE_LINE_SIZE); + txr->q_swbd = rte_malloc(NULL, size, ENETC_BD_RING_ALIGN); if (txr->q_swbd == NULL) return -ENOMEM; size = nb_desc * sizeof(struct enetc_tx_bd); - txr->bd_base = rte_malloc(NULL, size, RTE_CACHE_LINE_SIZE); + txr->bd_base = rte_malloc(NULL, size, ENETC_BD_RING_ALIGN); if (txr->bd_base == NULL) { rte_free(txr->q_swbd); txr->q_swbd = NULL; @@ -325,12 +325,12 @@ enetc_alloc_rxbdr(struct enetc_bdr *rxr, int size; size = nb_rx_desc * sizeof(struct enetc_swbd); - rxr->q_swbd = rte_malloc(NULL, size, RTE_CACHE_LINE_SIZE); + rxr->q_swbd = rte_malloc(NULL, size, ENETC_BD_RING_ALIGN); if (rxr->q_swbd == NULL) return -ENOMEM; size = nb_rx_desc * sizeof(union enetc_rx_bd); - rxr->bd_base = rte_malloc(NULL, size, RTE_CACHE_LINE_SIZE); + rxr->bd_base = rte_malloc(NULL, size, ENETC_BD_RING_ALIGN); if (rxr->bd_base == NULL) { rte_free(rxr->q_swbd); rxr->q_swbd = NULL; -- 2.20.1