From patchwork Wed Sep 9 15:52:56 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lance Richardson X-Patchwork-Id: 77067 X-Patchwork-Delegate: ajit.khaparde@broadcom.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id A4B71A04B5; Wed, 9 Sep 2020 17:53:46 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 06A891C112; Wed, 9 Sep 2020 17:53:21 +0200 (CEST) Received: from mail-pf1-f194.google.com (mail-pf1-f194.google.com [209.85.210.194]) by dpdk.org (Postfix) with ESMTP id 92AEF1C10E for ; Wed, 9 Sep 2020 17:53:19 +0200 (CEST) Received: by mail-pf1-f194.google.com with SMTP id n14so2525422pff.6 for ; Wed, 09 Sep 2020 08:53:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=hD3h66OJlJ0Sb9lO78dYGSsWP+O2VlV5JJXboZ1OZkQ=; b=SLeSEh8ZUvhiLsrsIb9b5q5ffIuOIfV2kjQ48B3ZmGemTlI8yxBUMWuQmCVRl3d3KB 3MpvbodiU9R2E7VaPSy5jU1DstAZnmeKk5oZyt9/3E/gGUPgtCXgZiuYFueo7uRafAkh G3i/cBSyzzYzeFO1q6BMAVEAsaExBi2/2h3uQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=hD3h66OJlJ0Sb9lO78dYGSsWP+O2VlV5JJXboZ1OZkQ=; b=q54JYYI6biGuPSje3lDR7X5ycb3x6RQPQvBsPnbLY/HqxewrlcMGrI4lTOTPzJl2jn W5MNESOiPSs9GYgk5IAcUn8WqfYiO6g+1f5mwZKgXH13h4yrkbN8wrAaiUwyuKoQ39U3 58lakVwxCQ0RFghW8Pz1vebJIP4mdgc2KoYpY7qLyQH1+knmytXOVPhxsKiizFU79EQX 4Cz/WruPs04on/sLSIAHQTrERZYyxzU+5jIqgs6wmkIFNJdLGCJcBPXy6rmKyac9Ifz4 0QbD3XHhqdAuDDJLYUpygFMwImgL2vwqVb6CD3jfYcG9hm8ceYtFaOag5E33RCVcZxkJ fozg== X-Gm-Message-State: AOAM531xGVs246psThO2Ik6iCLm55hVI4LKaqmpR9Pmun/RpGgMPSZ4i ftJjKfxssn+8s43bwPOp/W2TBA== X-Google-Smtp-Source: ABdhPJxVO5Jsth63jREMjRkjx+oqbflt+VR2CGjEyqorohw7afCgiEuOeMhbWXUCnx+w2RrHTTtpcg== X-Received: by 2002:aa7:8646:: with SMTP id a6mr1379319pfo.54.1599666798531; Wed, 09 Sep 2020 08:53:18 -0700 (PDT) Received: from localhost.localdomain ([192.19.231.250]) by smtp.gmail.com with ESMTPSA id h15sm3188427pfo.23.2020.09.09.08.53.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Sep 2020 08:53:18 -0700 (PDT) From: Lance Richardson To: Ajit Khaparde , Somnath Kotur Cc: dev@dpdk.org Date: Wed, 9 Sep 2020 11:52:56 -0400 Message-Id: <20200909155302.28656-4-lance.richardson@broadcom.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200909155302.28656-1-lance.richardson@broadcom.com> References: <20200909155302.28656-1-lance.richardson@broadcom.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH 03/12] net/bnxt: use appropriate type for Rx mbuf ring X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Change the type of the software receive mbuf ring from an array of structures containing an mbuf pointer to an array of pointers to struct rte_mbuf for consistency with how this ring is currently used by the vector mode receive function. Reviewed-by: Ajit Kumar Khaparde Reviewed-by: Somnath Kotur Signed-off-by: Lance Richardson --- drivers/net/bnxt/bnxt_ethdev.c | 6 ++-- drivers/net/bnxt/bnxt_reps.c | 21 +++++++------- drivers/net/bnxt/bnxt_ring.c | 4 +-- drivers/net/bnxt/bnxt_rxq.c | 14 ++++----- drivers/net/bnxt/bnxt_rxr.c | 41 ++++++++++++++------------- drivers/net/bnxt/bnxt_rxr.h | 8 ++---- drivers/net/bnxt/bnxt_rxtx_vec_neon.c | 10 +++---- drivers/net/bnxt/bnxt_rxtx_vec_sse.c | 10 +++---- 8 files changed, 55 insertions(+), 59 deletions(-) diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c index 5585f872d0..c57c5cc2af 100644 --- a/drivers/net/bnxt/bnxt_ethdev.c +++ b/drivers/net/bnxt/bnxt_ethdev.c @@ -2843,7 +2843,7 @@ bnxt_rx_descriptor_status_op(void *rx_queue, uint16_t offset) struct bnxt_rx_queue *rxq = (struct bnxt_rx_queue *)rx_queue; struct bnxt_rx_ring_info *rxr; struct bnxt_cp_ring_info *cpr; - struct bnxt_sw_rx_bd *rx_buf; + struct rte_mbuf *rx_buf; struct rx_pkt_cmpl *rxcmp; uint32_t cons, cp_cons; int rc; @@ -2872,8 +2872,8 @@ bnxt_rx_descriptor_status_op(void *rx_queue, uint16_t offset) if (CMPL_VALID(rxcmp, !cpr->valid)) return RTE_ETH_RX_DESC_DONE; } - rx_buf = &rxr->rx_buf_ring[cons]; - if (rx_buf->mbuf == NULL) + rx_buf = rxr->rx_buf_ring[cons]; + if (rx_buf == NULL) return RTE_ETH_RX_DESC_UNAVAIL; diff --git a/drivers/net/bnxt/bnxt_reps.c b/drivers/net/bnxt/bnxt_reps.c index a1b2c4bf97..bea9f3d1c1 100644 --- a/drivers/net/bnxt/bnxt_reps.c +++ b/drivers/net/bnxt/bnxt_reps.c @@ -35,7 +35,7 @@ static const struct eth_dev_ops bnxt_vf_rep_dev_ops = { uint16_t bnxt_vfr_recv(uint16_t port_id, uint16_t queue_id, struct rte_mbuf *mbuf) { - struct bnxt_sw_rx_bd *prod_rx_buf; + struct rte_mbuf **prod_rx_buf; struct bnxt_rx_ring_info *rep_rxr; struct bnxt_rx_queue *rep_rxq; struct rte_eth_dev *vfr_eth_dev; @@ -54,10 +54,9 @@ bnxt_vfr_recv(uint16_t port_id, uint16_t queue_id, struct rte_mbuf *mbuf) mask = rep_rxr->rx_ring_struct->ring_mask; /* Put this mbuf on the RxQ of the Representor */ - prod_rx_buf = - &rep_rxr->rx_buf_ring[rep_rxr->rx_prod++ & mask]; - if (!prod_rx_buf->mbuf) { - prod_rx_buf->mbuf = mbuf; + prod_rx_buf = &rep_rxr->rx_buf_ring[rep_rxr->rx_prod++ & mask]; + if (!*prod_rx_buf) { + *prod_rx_buf = mbuf; vfr_bp->rx_bytes[que] += mbuf->pkt_len; vfr_bp->rx_pkts[que]++; } else { @@ -75,7 +74,7 @@ bnxt_vf_rep_rx_burst(void *rx_queue, uint16_t nb_pkts) { struct bnxt_rx_queue *rxq = rx_queue; - struct bnxt_sw_rx_bd *cons_rx_buf; + struct rte_mbuf **cons_rx_buf; struct bnxt_rx_ring_info *rxr; uint16_t nb_rx_pkts = 0; uint16_t mask, i; @@ -87,11 +86,11 @@ bnxt_vf_rep_rx_burst(void *rx_queue, mask = rxr->rx_ring_struct->ring_mask; for (i = 0; i < nb_pkts; i++) { cons_rx_buf = &rxr->rx_buf_ring[rxr->rx_cons & mask]; - if (!cons_rx_buf->mbuf) + if (*cons_rx_buf == NULL) return nb_rx_pkts; - rx_pkts[nb_rx_pkts] = cons_rx_buf->mbuf; + rx_pkts[nb_rx_pkts] = *cons_rx_buf; rx_pkts[nb_rx_pkts]->port = rxq->port_id; - cons_rx_buf->mbuf = NULL; + *cons_rx_buf = NULL; nb_rx_pkts++; rxr->rx_cons++; } @@ -559,7 +558,7 @@ int bnxt_vf_rep_rx_queue_setup_op(struct rte_eth_dev *eth_dev, struct bnxt *parent_bp = rep_bp->parent_dev->data->dev_private; struct bnxt_rx_queue *parent_rxq; struct bnxt_rx_queue *rxq; - struct bnxt_sw_rx_bd *buf_ring; + struct rte_mbuf **buf_ring; int rc = 0; if (queue_idx >= BNXT_MAX_VF_REP_RINGS) { @@ -611,7 +610,7 @@ int bnxt_vf_rep_rx_queue_setup_op(struct rte_eth_dev *eth_dev, goto out; buf_ring = rte_zmalloc_socket("bnxt_rx_vfr_buf_ring", - sizeof(struct bnxt_sw_rx_bd) * + sizeof(struct rte_mbuf *) * rxq->rx_ring->rx_ring_struct->ring_size, RTE_CACHE_LINE_SIZE, socket_id); if (!buf_ring) { diff --git a/drivers/net/bnxt/bnxt_ring.c b/drivers/net/bnxt/bnxt_ring.c index 8f2296b293..f7f6ee8049 100644 --- a/drivers/net/bnxt/bnxt_ring.c +++ b/drivers/net/bnxt/bnxt_ring.c @@ -251,7 +251,7 @@ int bnxt_alloc_rings(struct bnxt *bp, uint16_t qidx, rx_ring->vmem = (void **)((char *)mz->addr + rx_vmem_start); rx_ring_info->rx_buf_ring = - (struct bnxt_sw_rx_bd *)rx_ring->vmem; + (struct rte_mbuf **)rx_ring->vmem; } rx_ring = rx_ring_info->ag_ring_struct; @@ -269,7 +269,7 @@ int bnxt_alloc_rings(struct bnxt *bp, uint16_t qidx, rx_ring->vmem = (void **)((char *)mz->addr + ag_vmem_start); rx_ring_info->ag_buf_ring = - (struct bnxt_sw_rx_bd *)rx_ring->vmem; + (struct rte_mbuf **)rx_ring->vmem; } rx_ring_info->ag_bitmap = diff --git a/drivers/net/bnxt/bnxt_rxq.c b/drivers/net/bnxt/bnxt_rxq.c index e42308a97f..db9aa1f3ed 100644 --- a/drivers/net/bnxt/bnxt_rxq.c +++ b/drivers/net/bnxt/bnxt_rxq.c @@ -197,7 +197,7 @@ int bnxt_mq_rx_configure(struct bnxt *bp) void bnxt_rx_queue_release_mbufs(struct bnxt_rx_queue *rxq) { - struct bnxt_sw_rx_bd *sw_ring; + struct rte_mbuf **sw_ring; struct bnxt_tpa_info *tpa_info; uint16_t i; @@ -210,9 +210,9 @@ void bnxt_rx_queue_release_mbufs(struct bnxt_rx_queue *rxq) if (sw_ring) { for (i = 0; i < rxq->rx_ring->rx_ring_struct->ring_size; i++) { - if (sw_ring[i].mbuf) { - rte_pktmbuf_free_seg(sw_ring[i].mbuf); - sw_ring[i].mbuf = NULL; + if (sw_ring[i]) { + rte_pktmbuf_free_seg(sw_ring[i]); + sw_ring[i] = NULL; } } } @@ -221,9 +221,9 @@ void bnxt_rx_queue_release_mbufs(struct bnxt_rx_queue *rxq) if (sw_ring) { for (i = 0; i < rxq->rx_ring->ag_ring_struct->ring_size; i++) { - if (sw_ring[i].mbuf) { - rte_pktmbuf_free_seg(sw_ring[i].mbuf); - sw_ring[i].mbuf = NULL; + if (sw_ring[i]) { + rte_pktmbuf_free_seg(sw_ring[i]); + sw_ring[i] = NULL; } } } diff --git a/drivers/net/bnxt/bnxt_rxr.c b/drivers/net/bnxt/bnxt_rxr.c index b086898148..92102e3d57 100644 --- a/drivers/net/bnxt/bnxt_rxr.c +++ b/drivers/net/bnxt/bnxt_rxr.c @@ -42,7 +42,7 @@ static inline int bnxt_alloc_rx_data(struct bnxt_rx_queue *rxq, uint16_t prod) { struct rx_prod_pkt_bd *rxbd = &rxr->rx_desc_ring[prod]; - struct bnxt_sw_rx_bd *rx_buf = &rxr->rx_buf_ring[prod]; + struct rte_mbuf **rx_buf = &rxr->rx_buf_ring[prod]; struct rte_mbuf *mbuf; mbuf = __bnxt_alloc_rx_data(rxq->mb_pool); @@ -51,7 +51,7 @@ static inline int bnxt_alloc_rx_data(struct bnxt_rx_queue *rxq, return -ENOMEM; } - rx_buf->mbuf = mbuf; + *rx_buf = mbuf; mbuf->data_off = RTE_PKTMBUF_HEADROOM; rxbd->address = rte_cpu_to_le_64(rte_mbuf_data_iova_default(mbuf)); @@ -64,7 +64,7 @@ static inline int bnxt_alloc_ag_data(struct bnxt_rx_queue *rxq, uint16_t prod) { struct rx_prod_pkt_bd *rxbd = &rxr->ag_desc_ring[prod]; - struct bnxt_sw_rx_bd *rx_buf = &rxr->ag_buf_ring[prod]; + struct rte_mbuf **rx_buf = &rxr->ag_buf_ring[prod]; struct rte_mbuf *mbuf; if (rxbd == NULL) { @@ -83,7 +83,7 @@ static inline int bnxt_alloc_ag_data(struct bnxt_rx_queue *rxq, return -ENOMEM; } - rx_buf->mbuf = mbuf; + *rx_buf = mbuf; mbuf->data_off = RTE_PKTMBUF_HEADROOM; rxbd->address = rte_cpu_to_le_64(rte_mbuf_data_iova_default(mbuf)); @@ -95,15 +95,15 @@ static inline void bnxt_reuse_rx_mbuf(struct bnxt_rx_ring_info *rxr, struct rte_mbuf *mbuf) { uint16_t prod = RING_NEXT(rxr->rx_ring_struct, rxr->rx_prod); - struct bnxt_sw_rx_bd *prod_rx_buf; + struct rte_mbuf **prod_rx_buf; struct rx_prod_pkt_bd *prod_bd; prod_rx_buf = &rxr->rx_buf_ring[prod]; - RTE_ASSERT(prod_rx_buf->mbuf == NULL); + RTE_ASSERT(*prod_rx_buf == NULL); RTE_ASSERT(mbuf != NULL); - prod_rx_buf->mbuf = mbuf; + *prod_rx_buf = mbuf; prod_bd = &rxr->rx_desc_ring[prod]; @@ -116,13 +116,14 @@ static inline struct rte_mbuf *bnxt_consume_rx_buf(struct bnxt_rx_ring_info *rxr, uint16_t cons) { - struct bnxt_sw_rx_bd *cons_rx_buf; + struct rte_mbuf **cons_rx_buf; struct rte_mbuf *mbuf; cons_rx_buf = &rxr->rx_buf_ring[cons]; - RTE_ASSERT(cons_rx_buf->mbuf != NULL); - mbuf = cons_rx_buf->mbuf; - cons_rx_buf->mbuf = NULL; + RTE_ASSERT(*cons_rx_buf != NULL); + mbuf = *cons_rx_buf; + *cons_rx_buf = NULL; + return mbuf; } @@ -226,7 +227,7 @@ static int bnxt_rx_pages(struct bnxt_rx_queue *rxq, bool is_thor_tpa = tpa_info && BNXT_CHIP_THOR(rxq->bp); for (i = 0; i < agg_buf; i++) { - struct bnxt_sw_rx_bd *ag_buf; + struct rte_mbuf **ag_buf; struct rte_mbuf *ag_mbuf; if (is_thor_tpa) { @@ -245,7 +246,7 @@ static int bnxt_rx_pages(struct bnxt_rx_queue *rxq, ag_cons = rxcmp->opaque; RTE_ASSERT(ag_cons <= rxr->ag_ring_struct->ring_mask); ag_buf = &rxr->ag_buf_ring[ag_cons]; - ag_mbuf = ag_buf->mbuf; + ag_mbuf = *ag_buf; RTE_ASSERT(ag_mbuf != NULL); ag_mbuf->data_len = rte_le_to_cpu_16(rxcmp->len); @@ -256,7 +257,7 @@ static int bnxt_rx_pages(struct bnxt_rx_queue *rxq, last->next = ag_mbuf; last = ag_mbuf; - ag_buf->mbuf = NULL; + *ag_buf = NULL; /* * As aggregation buffer consumed out of order in TPA module, @@ -866,10 +867,10 @@ uint16_t bnxt_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, for (; cnt; i = RING_NEXT(rxr->rx_ring_struct, i), cnt--) { - struct bnxt_sw_rx_bd *rx_buf = &rxr->rx_buf_ring[i]; + struct rte_mbuf **rx_buf = &rxr->rx_buf_ring[i]; /* Buffer already allocated for this index. */ - if (rx_buf->mbuf != NULL) + if (*rx_buf != NULL) continue; /* This slot is empty. Alloc buffer for Rx */ @@ -960,7 +961,7 @@ int bnxt_init_rx_ring_struct(struct bnxt_rx_queue *rxq, unsigned int socket_id) ring->ring_mask = ring->ring_size - 1; ring->bd = (void *)rxr->rx_desc_ring; ring->bd_dma = rxr->rx_desc_mapping; - ring->vmem_size = ring->ring_size * sizeof(struct bnxt_sw_rx_bd); + ring->vmem_size = ring->ring_size * sizeof(struct rte_mbuf *); ring->vmem = (void **)&rxr->rx_buf_ring; ring->fw_ring_id = INVALID_HW_RING_ID; @@ -998,7 +999,7 @@ int bnxt_init_rx_ring_struct(struct bnxt_rx_queue *rxq, unsigned int socket_id) ring->ring_mask = ring->ring_size - 1; ring->bd = (void *)rxr->ag_desc_ring; ring->bd_dma = rxr->ag_desc_mapping; - ring->vmem_size = ring->ring_size * sizeof(struct bnxt_sw_rx_bd); + ring->vmem_size = ring->ring_size * sizeof(struct rte_mbuf *); ring->vmem = (void **)&rxr->ag_buf_ring; ring->fw_ring_id = INVALID_HW_RING_ID; @@ -1039,7 +1040,7 @@ int bnxt_init_one_rx_ring(struct bnxt_rx_queue *rxq) prod = rxr->rx_prod; for (i = 0; i < ring->ring_size; i++) { - if (unlikely(!rxr->rx_buf_ring[i].mbuf)) { + if (unlikely(!rxr->rx_buf_ring[i])) { if (bnxt_alloc_rx_data(rxq, rxr, prod) != 0) { PMD_DRV_LOG(WARNING, "init'ed rx ring %d with %d/%d mbufs only\n", @@ -1057,7 +1058,7 @@ int bnxt_init_one_rx_ring(struct bnxt_rx_queue *rxq) prod = rxr->ag_prod; for (i = 0; i < ring->ring_size; i++) { - if (unlikely(!rxr->ag_buf_ring[i].mbuf)) { + if (unlikely(!rxr->ag_buf_ring[i])) { if (bnxt_alloc_ag_data(rxq, rxr, prod) != 0) { PMD_DRV_LOG(WARNING, "init'ed AG ring %d with %d/%d mbufs only\n", diff --git a/drivers/net/bnxt/bnxt_rxr.h b/drivers/net/bnxt/bnxt_rxr.h index 2bf46cd910..5b9b5f3108 100644 --- a/drivers/net/bnxt/bnxt_rxr.h +++ b/drivers/net/bnxt/bnxt_rxr.h @@ -181,10 +181,6 @@ struct bnxt_tpa_info { struct rx_tpa_v2_abuf_cmpl agg_arr[TPA_MAX_NUM_SEGS]; }; -struct bnxt_sw_rx_bd { - struct rte_mbuf *mbuf; /* data associated with RX descriptor */ -}; - struct bnxt_rx_ring_info { uint16_t rx_prod; uint16_t ag_prod; @@ -194,8 +190,8 @@ struct bnxt_rx_ring_info { struct rx_prod_pkt_bd *rx_desc_ring; struct rx_prod_pkt_bd *ag_desc_ring; - struct bnxt_sw_rx_bd *rx_buf_ring; /* sw ring */ - struct bnxt_sw_rx_bd *ag_buf_ring; /* sw ring */ + struct rte_mbuf **rx_buf_ring; /* sw ring */ + struct rte_mbuf **ag_buf_ring; /* sw ring */ rte_iova_t rx_desc_mapping; rte_iova_t ag_desc_mapping; diff --git a/drivers/net/bnxt/bnxt_rxtx_vec_neon.c b/drivers/net/bnxt/bnxt_rxtx_vec_neon.c index bf76c2ac26..eff196f3a0 100644 --- a/drivers/net/bnxt/bnxt_rxtx_vec_neon.c +++ b/drivers/net/bnxt/bnxt_rxtx_vec_neon.c @@ -29,7 +29,7 @@ static inline void bnxt_rxq_rearm(struct bnxt_rx_queue *rxq, struct bnxt_rx_ring_info *rxr) { struct rx_prod_pkt_bd *rxbds = &rxr->rx_desc_ring[rxq->rxrearm_start]; - struct bnxt_sw_rx_bd *rx_bufs = &rxr->rx_buf_ring[rxq->rxrearm_start]; + struct rte_mbuf **rx_bufs = &rxr->rx_buf_ring[rxq->rxrearm_start]; struct rte_mbuf *mb0, *mb1; int i; @@ -51,8 +51,8 @@ bnxt_rxq_rearm(struct bnxt_rx_queue *rxq, struct bnxt_rx_ring_info *rxr) uint64x2_t buf_addr0, buf_addr1; uint64x2_t rxbd0, rxbd1; - mb0 = rx_bufs[0].mbuf; - mb1 = rx_bufs[1].mbuf; + mb0 = rx_bufs[0]; + mb1 = rx_bufs[1]; /* Load address fields from both mbufs */ buf_addr0 = vld1q_u64((uint64_t *)&mb0->buf_addr); @@ -260,9 +260,9 @@ bnxt_recv_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts, raw_cons = tmp_raw_cons; cons = rxcmp->opaque; - mbuf = rxr->rx_buf_ring[cons].mbuf; + mbuf = rxr->rx_buf_ring[cons]; rte_prefetch0(mbuf); - rxr->rx_buf_ring[cons].mbuf = NULL; + rxr->rx_buf_ring[cons] = NULL; /* Set constant fields from mbuf initializer. */ vst1q_u64((uint64_t *)&mbuf->rearm_data, mbuf_init); diff --git a/drivers/net/bnxt/bnxt_rxtx_vec_sse.c b/drivers/net/bnxt/bnxt_rxtx_vec_sse.c index 98220bc1b3..822e43343f 100644 --- a/drivers/net/bnxt/bnxt_rxtx_vec_sse.c +++ b/drivers/net/bnxt/bnxt_rxtx_vec_sse.c @@ -33,7 +33,7 @@ static inline void bnxt_rxq_rearm(struct bnxt_rx_queue *rxq, struct bnxt_rx_ring_info *rxr) { struct rx_prod_pkt_bd *rxbds = &rxr->rx_desc_ring[rxq->rxrearm_start]; - struct bnxt_sw_rx_bd *rx_bufs = &rxr->rx_buf_ring[rxq->rxrearm_start]; + struct rte_mbuf **rx_bufs = &rxr->rx_buf_ring[rxq->rxrearm_start]; struct rte_mbuf *mb0, *mb1; int i; @@ -55,8 +55,8 @@ bnxt_rxq_rearm(struct bnxt_rx_queue *rxq, struct bnxt_rx_ring_info *rxr) __m128i buf_addr0, buf_addr1; __m128i rxbd0, rxbd1; - mb0 = rx_bufs[0].mbuf; - mb1 = rx_bufs[1].mbuf; + mb0 = rx_bufs[0]; + mb1 = rx_bufs[1]; /* Load address fields from both mbufs */ buf_addr0 = _mm_loadu_si128((__m128i *)&mb0->buf_addr); @@ -265,9 +265,9 @@ bnxt_recv_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts, raw_cons = tmp_raw_cons; cons = rxcmp->opaque; - mbuf = rxr->rx_buf_ring[cons].mbuf; + mbuf = rxr->rx_buf_ring[cons]; rte_prefetch0(mbuf); - rxr->rx_buf_ring[cons].mbuf = NULL; + rxr->rx_buf_ring[cons] = NULL; /* Set constant fields from mbuf initializer. */ _mm_store_si128((__m128i *)&mbuf->rearm_data,