Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/77067/?format=api
http://patches.dpdk.org/api/patches/77067/?format=api", "web_url": "http://patches.dpdk.org/project/dpdk/patch/20200909155302.28656-4-lance.richardson@broadcom.com/", "project": { "id": 1, "url": "http://patches.dpdk.org/api/projects/1/?format=api", "name": "DPDK", "link_name": "dpdk", "list_id": "dev.dpdk.org", "list_email": "dev@dpdk.org", "web_url": "http://core.dpdk.org", "scm_url": "git://dpdk.org/dpdk", "webscm_url": "http://git.dpdk.org/dpdk", "list_archive_url": "https://inbox.dpdk.org/dev", "list_archive_url_format": "https://inbox.dpdk.org/dev/{}", "commit_url_format": "" }, "msgid": "<20200909155302.28656-4-lance.richardson@broadcom.com>", "list_archive_url": "https://inbox.dpdk.org/dev/20200909155302.28656-4-lance.richardson@broadcom.com", "date": "2020-09-09T15:52:56", "name": "[03/12] net/bnxt: use appropriate type for Rx mbuf ring", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": true, "hash": "85426ae4408c3d06d7994dd8a2b72515cb5ba284", "submitter": { "id": 1323, "url": "http://patches.dpdk.org/api/people/1323/?format=api", "name": "Lance Richardson", "email": "lance.richardson@broadcom.com" }, "delegate": { "id": 1766, "url": "http://patches.dpdk.org/api/users/1766/?format=api", "username": "ajitkhaparde", "first_name": "Ajit", "last_name": "Khaparde", "email": "ajit.khaparde@broadcom.com" }, "mbox": "http://patches.dpdk.org/project/dpdk/patch/20200909155302.28656-4-lance.richardson@broadcom.com/mbox/", "series": [ { "id": 12060, "url": "http://patches.dpdk.org/api/series/12060/?format=api", "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=12060", "date": "2020-09-09T15:52:53", "name": "net/bnxt: vector PMD improvements", "version": 1, "mbox": "http://patches.dpdk.org/series/12060/mbox/" } ], "comments": "http://patches.dpdk.org/api/patches/77067/comments/", "check": "success", "checks": "http://patches.dpdk.org/api/patches/77067/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<dev-bounces@dpdk.org>", "X-Original-To": "patchwork@inbox.dpdk.org", "Delivered-To": "patchwork@inbox.dpdk.org", "Received": [ "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id A4B71A04B5;\n\tWed, 9 Sep 2020 17:53:46 +0200 (CEST)", "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 06A891C112;\n\tWed, 9 Sep 2020 17:53:21 +0200 (CEST)", "from mail-pf1-f194.google.com (mail-pf1-f194.google.com\n [209.85.210.194]) by dpdk.org (Postfix) with ESMTP id 92AEF1C10E\n for <dev@dpdk.org>; Wed, 9 Sep 2020 17:53:19 +0200 (CEST)", "by mail-pf1-f194.google.com with SMTP id n14so2525422pff.6\n for <dev@dpdk.org>; Wed, 09 Sep 2020 08:53:19 -0700 (PDT)", "from localhost.localdomain ([192.19.231.250])\n by smtp.gmail.com with ESMTPSA id h15sm3188427pfo.23.2020.09.09.08.53.17\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Wed, 09 Sep 2020 08:53:18 -0700 (PDT)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com;\n s=google;\n h=from:to:cc:subject:date:message-id:in-reply-to:references\n :mime-version:content-transfer-encoding;\n bh=hD3h66OJlJ0Sb9lO78dYGSsWP+O2VlV5JJXboZ1OZkQ=;\n b=SLeSEh8ZUvhiLsrsIb9b5q5ffIuOIfV2kjQ48B3ZmGemTlI8yxBUMWuQmCVRl3d3KB\n 3MpvbodiU9R2E7VaPSy5jU1DstAZnmeKk5oZyt9/3E/gGUPgtCXgZiuYFueo7uRafAkh\n G3i/cBSyzzYzeFO1q6BMAVEAsaExBi2/2h3uQ=", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20161025;\n h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\n :references:mime-version:content-transfer-encoding;\n bh=hD3h66OJlJ0Sb9lO78dYGSsWP+O2VlV5JJXboZ1OZkQ=;\n b=q54JYYI6biGuPSje3lDR7X5ycb3x6RQPQvBsPnbLY/HqxewrlcMGrI4lTOTPzJl2jn\n W5MNESOiPSs9GYgk5IAcUn8WqfYiO6g+1f5mwZKgXH13h4yrkbN8wrAaiUwyuKoQ39U3\n 58lakVwxCQ0RFghW8Pz1vebJIP4mdgc2KoYpY7qLyQH1+knmytXOVPhxsKiizFU79EQX\n 4Cz/WruPs04on/sLSIAHQTrERZYyxzU+5jIqgs6wmkIFNJdLGCJcBPXy6rmKyac9Ifz4\n 0QbD3XHhqdAuDDJLYUpygFMwImgL2vwqVb6CD3jfYcG9hm8ceYtFaOag5E33RCVcZxkJ\n fozg==", "X-Gm-Message-State": "AOAM531xGVs246psThO2Ik6iCLm55hVI4LKaqmpR9Pmun/RpGgMPSZ4i\n ftJjKfxssn+8s43bwPOp/W2TBA==", "X-Google-Smtp-Source": "\n ABdhPJxVO5Jsth63jREMjRkjx+oqbflt+VR2CGjEyqorohw7afCgiEuOeMhbWXUCnx+w2RrHTTtpcg==", "X-Received": "by 2002:aa7:8646:: with SMTP id a6mr1379319pfo.54.1599666798531;\n Wed, 09 Sep 2020 08:53:18 -0700 (PDT)", "From": "Lance Richardson <lance.richardson@broadcom.com>", "To": "Ajit Khaparde <ajit.khaparde@broadcom.com>,\n Somnath Kotur <somnath.kotur@broadcom.com>", "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", "Content-Transfer-Encoding": "8bit", "Subject": "[dpdk-dev] [PATCH 03/12] net/bnxt: use appropriate type for Rx mbuf\n\tring", "X-BeenThere": "dev@dpdk.org", "X-Mailman-Version": "2.1.15", "Precedence": "list", "List-Id": "DPDK patches and discussions <dev.dpdk.org>", "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>", "List-Archive": "<http://mails.dpdk.org/archives/dev/>", "List-Post": "<mailto:dev@dpdk.org>", "List-Help": "<mailto:dev-request@dpdk.org?subject=help>", "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org", "Sender": "\"dev\" <dev-bounces@dpdk.org>" }, "content": "Change the type of the software receive mbuf ring from an array\nof structures containing an mbuf pointer to an array of pointers\nto struct rte_mbuf for consistency with how this ring is currently\nused by the vector mode receive function.\n\nReviewed-by: Ajit Kumar Khaparde <ajit.khaparde@broadcom.com>\nReviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>\nSigned-off-by: Lance Richardson <lance.richardson@broadcom.com>\n---\n drivers/net/bnxt/bnxt_ethdev.c | 6 ++--\n drivers/net/bnxt/bnxt_reps.c | 21 +++++++-------\n drivers/net/bnxt/bnxt_ring.c | 4 +--\n drivers/net/bnxt/bnxt_rxq.c | 14 ++++-----\n drivers/net/bnxt/bnxt_rxr.c | 41 ++++++++++++++-------------\n drivers/net/bnxt/bnxt_rxr.h | 8 ++----\n drivers/net/bnxt/bnxt_rxtx_vec_neon.c | 10 +++----\n drivers/net/bnxt/bnxt_rxtx_vec_sse.c | 10 +++----\n 8 files changed, 55 insertions(+), 59 deletions(-)", "diff": "diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c\nindex 5585f872d0..c57c5cc2af 100644\n--- a/drivers/net/bnxt/bnxt_ethdev.c\n+++ b/drivers/net/bnxt/bnxt_ethdev.c\n@@ -2843,7 +2843,7 @@ bnxt_rx_descriptor_status_op(void *rx_queue, uint16_t offset)\n \tstruct bnxt_rx_queue *rxq = (struct bnxt_rx_queue *)rx_queue;\n \tstruct bnxt_rx_ring_info *rxr;\n \tstruct bnxt_cp_ring_info *cpr;\n-\tstruct bnxt_sw_rx_bd *rx_buf;\n+\tstruct rte_mbuf *rx_buf;\n \tstruct rx_pkt_cmpl *rxcmp;\n \tuint32_t cons, cp_cons;\n \tint rc;\n@@ -2872,8 +2872,8 @@ bnxt_rx_descriptor_status_op(void *rx_queue, uint16_t offset)\n \t\tif (CMPL_VALID(rxcmp, !cpr->valid))\n \t\t\treturn RTE_ETH_RX_DESC_DONE;\n \t}\n-\trx_buf = &rxr->rx_buf_ring[cons];\n-\tif (rx_buf->mbuf == NULL)\n+\trx_buf = rxr->rx_buf_ring[cons];\n+\tif (rx_buf == NULL)\n \t\treturn RTE_ETH_RX_DESC_UNAVAIL;\n \n \ndiff --git a/drivers/net/bnxt/bnxt_reps.c b/drivers/net/bnxt/bnxt_reps.c\nindex a1b2c4bf97..bea9f3d1c1 100644\n--- a/drivers/net/bnxt/bnxt_reps.c\n+++ b/drivers/net/bnxt/bnxt_reps.c\n@@ -35,7 +35,7 @@ static const struct eth_dev_ops bnxt_vf_rep_dev_ops = {\n uint16_t\n bnxt_vfr_recv(uint16_t port_id, uint16_t queue_id, struct rte_mbuf *mbuf)\n {\n-\tstruct bnxt_sw_rx_bd *prod_rx_buf;\n+\tstruct rte_mbuf **prod_rx_buf;\n \tstruct bnxt_rx_ring_info *rep_rxr;\n \tstruct bnxt_rx_queue *rep_rxq;\n \tstruct rte_eth_dev *vfr_eth_dev;\n@@ -54,10 +54,9 @@ bnxt_vfr_recv(uint16_t port_id, uint16_t queue_id, struct rte_mbuf *mbuf)\n \tmask = rep_rxr->rx_ring_struct->ring_mask;\n \n \t/* Put this mbuf on the RxQ of the Representor */\n-\tprod_rx_buf =\n-\t\t&rep_rxr->rx_buf_ring[rep_rxr->rx_prod++ & mask];\n-\tif (!prod_rx_buf->mbuf) {\n-\t\tprod_rx_buf->mbuf = mbuf;\n+\tprod_rx_buf = &rep_rxr->rx_buf_ring[rep_rxr->rx_prod++ & mask];\n+\tif (!*prod_rx_buf) {\n+\t\t*prod_rx_buf = mbuf;\n \t\tvfr_bp->rx_bytes[que] += mbuf->pkt_len;\n \t\tvfr_bp->rx_pkts[que]++;\n \t} else {\n@@ -75,7 +74,7 @@ bnxt_vf_rep_rx_burst(void *rx_queue,\n \t\t uint16_t nb_pkts)\n {\n \tstruct bnxt_rx_queue *rxq = rx_queue;\n-\tstruct bnxt_sw_rx_bd *cons_rx_buf;\n+\tstruct rte_mbuf **cons_rx_buf;\n \tstruct bnxt_rx_ring_info *rxr;\n \tuint16_t nb_rx_pkts = 0;\n \tuint16_t mask, i;\n@@ -87,11 +86,11 @@ bnxt_vf_rep_rx_burst(void *rx_queue,\n \tmask = rxr->rx_ring_struct->ring_mask;\n \tfor (i = 0; i < nb_pkts; i++) {\n \t\tcons_rx_buf = &rxr->rx_buf_ring[rxr->rx_cons & mask];\n-\t\tif (!cons_rx_buf->mbuf)\n+\t\tif (*cons_rx_buf == NULL)\n \t\t\treturn nb_rx_pkts;\n-\t\trx_pkts[nb_rx_pkts] = cons_rx_buf->mbuf;\n+\t\trx_pkts[nb_rx_pkts] = *cons_rx_buf;\n \t\trx_pkts[nb_rx_pkts]->port = rxq->port_id;\n-\t\tcons_rx_buf->mbuf = NULL;\n+\t\t*cons_rx_buf = NULL;\n \t\tnb_rx_pkts++;\n \t\trxr->rx_cons++;\n \t}\n@@ -559,7 +558,7 @@ int bnxt_vf_rep_rx_queue_setup_op(struct rte_eth_dev *eth_dev,\n \tstruct bnxt *parent_bp = rep_bp->parent_dev->data->dev_private;\n \tstruct bnxt_rx_queue *parent_rxq;\n \tstruct bnxt_rx_queue *rxq;\n-\tstruct bnxt_sw_rx_bd *buf_ring;\n+\tstruct rte_mbuf **buf_ring;\n \tint rc = 0;\n \n \tif (queue_idx >= BNXT_MAX_VF_REP_RINGS) {\n@@ -611,7 +610,7 @@ int bnxt_vf_rep_rx_queue_setup_op(struct rte_eth_dev *eth_dev,\n \t\tgoto out;\n \n \tbuf_ring = rte_zmalloc_socket(\"bnxt_rx_vfr_buf_ring\",\n-\t\t\t\t sizeof(struct bnxt_sw_rx_bd) *\n+\t\t\t\t sizeof(struct rte_mbuf *) *\n \t\t\t\t rxq->rx_ring->rx_ring_struct->ring_size,\n \t\t\t\t RTE_CACHE_LINE_SIZE, socket_id);\n \tif (!buf_ring) {\ndiff --git a/drivers/net/bnxt/bnxt_ring.c b/drivers/net/bnxt/bnxt_ring.c\nindex 8f2296b293..f7f6ee8049 100644\n--- a/drivers/net/bnxt/bnxt_ring.c\n+++ b/drivers/net/bnxt/bnxt_ring.c\n@@ -251,7 +251,7 @@ int bnxt_alloc_rings(struct bnxt *bp, uint16_t qidx,\n \t\t\trx_ring->vmem =\n \t\t\t (void **)((char *)mz->addr + rx_vmem_start);\n \t\t\trx_ring_info->rx_buf_ring =\n-\t\t\t (struct bnxt_sw_rx_bd *)rx_ring->vmem;\n+\t\t\t (struct rte_mbuf **)rx_ring->vmem;\n \t\t}\n \n \t\trx_ring = rx_ring_info->ag_ring_struct;\n@@ -269,7 +269,7 @@ int bnxt_alloc_rings(struct bnxt *bp, uint16_t qidx,\n \t\t\trx_ring->vmem =\n \t\t\t (void **)((char *)mz->addr + ag_vmem_start);\n \t\t\trx_ring_info->ag_buf_ring =\n-\t\t\t (struct bnxt_sw_rx_bd *)rx_ring->vmem;\n+\t\t\t (struct rte_mbuf **)rx_ring->vmem;\n \t\t}\n \n \t\trx_ring_info->ag_bitmap =\ndiff --git a/drivers/net/bnxt/bnxt_rxq.c b/drivers/net/bnxt/bnxt_rxq.c\nindex e42308a97f..db9aa1f3ed 100644\n--- a/drivers/net/bnxt/bnxt_rxq.c\n+++ b/drivers/net/bnxt/bnxt_rxq.c\n@@ -197,7 +197,7 @@ int bnxt_mq_rx_configure(struct bnxt *bp)\n \n void bnxt_rx_queue_release_mbufs(struct bnxt_rx_queue *rxq)\n {\n-\tstruct bnxt_sw_rx_bd *sw_ring;\n+\tstruct rte_mbuf **sw_ring;\n \tstruct bnxt_tpa_info *tpa_info;\n \tuint16_t i;\n \n@@ -210,9 +210,9 @@ void bnxt_rx_queue_release_mbufs(struct bnxt_rx_queue *rxq)\n \tif (sw_ring) {\n \t\tfor (i = 0;\n \t\t i < rxq->rx_ring->rx_ring_struct->ring_size; i++) {\n-\t\t\tif (sw_ring[i].mbuf) {\n-\t\t\t\trte_pktmbuf_free_seg(sw_ring[i].mbuf);\n-\t\t\t\tsw_ring[i].mbuf = NULL;\n+\t\t\tif (sw_ring[i]) {\n+\t\t\t\trte_pktmbuf_free_seg(sw_ring[i]);\n+\t\t\t\tsw_ring[i] = NULL;\n \t\t\t}\n \t\t}\n \t}\n@@ -221,9 +221,9 @@ void bnxt_rx_queue_release_mbufs(struct bnxt_rx_queue *rxq)\n \tif (sw_ring) {\n \t\tfor (i = 0;\n \t\t i < rxq->rx_ring->ag_ring_struct->ring_size; i++) {\n-\t\t\tif (sw_ring[i].mbuf) {\n-\t\t\t\trte_pktmbuf_free_seg(sw_ring[i].mbuf);\n-\t\t\t\tsw_ring[i].mbuf = NULL;\n+\t\t\tif (sw_ring[i]) {\n+\t\t\t\trte_pktmbuf_free_seg(sw_ring[i]);\n+\t\t\t\tsw_ring[i] = NULL;\n \t\t\t}\n \t\t}\n \t}\ndiff --git a/drivers/net/bnxt/bnxt_rxr.c b/drivers/net/bnxt/bnxt_rxr.c\nindex b086898148..92102e3d57 100644\n--- a/drivers/net/bnxt/bnxt_rxr.c\n+++ b/drivers/net/bnxt/bnxt_rxr.c\n@@ -42,7 +42,7 @@ static inline int bnxt_alloc_rx_data(struct bnxt_rx_queue *rxq,\n \t\t\t\t uint16_t prod)\n {\n \tstruct rx_prod_pkt_bd *rxbd = &rxr->rx_desc_ring[prod];\n-\tstruct bnxt_sw_rx_bd *rx_buf = &rxr->rx_buf_ring[prod];\n+\tstruct rte_mbuf **rx_buf = &rxr->rx_buf_ring[prod];\n \tstruct rte_mbuf *mbuf;\n \n \tmbuf = __bnxt_alloc_rx_data(rxq->mb_pool);\n@@ -51,7 +51,7 @@ static inline int bnxt_alloc_rx_data(struct bnxt_rx_queue *rxq,\n \t\treturn -ENOMEM;\n \t}\n \n-\trx_buf->mbuf = mbuf;\n+\t*rx_buf = mbuf;\n \tmbuf->data_off = RTE_PKTMBUF_HEADROOM;\n \n \trxbd->address = rte_cpu_to_le_64(rte_mbuf_data_iova_default(mbuf));\n@@ -64,7 +64,7 @@ static inline int bnxt_alloc_ag_data(struct bnxt_rx_queue *rxq,\n \t\t\t\t uint16_t prod)\n {\n \tstruct rx_prod_pkt_bd *rxbd = &rxr->ag_desc_ring[prod];\n-\tstruct bnxt_sw_rx_bd *rx_buf = &rxr->ag_buf_ring[prod];\n+\tstruct rte_mbuf **rx_buf = &rxr->ag_buf_ring[prod];\n \tstruct rte_mbuf *mbuf;\n \n \tif (rxbd == NULL) {\n@@ -83,7 +83,7 @@ static inline int bnxt_alloc_ag_data(struct bnxt_rx_queue *rxq,\n \t\treturn -ENOMEM;\n \t}\n \n-\trx_buf->mbuf = mbuf;\n+\t*rx_buf = mbuf;\n \tmbuf->data_off = RTE_PKTMBUF_HEADROOM;\n \n \trxbd->address = rte_cpu_to_le_64(rte_mbuf_data_iova_default(mbuf));\n@@ -95,15 +95,15 @@ static inline void bnxt_reuse_rx_mbuf(struct bnxt_rx_ring_info *rxr,\n \t\t\t struct rte_mbuf *mbuf)\n {\n \tuint16_t prod = RING_NEXT(rxr->rx_ring_struct, rxr->rx_prod);\n-\tstruct bnxt_sw_rx_bd *prod_rx_buf;\n+\tstruct rte_mbuf **prod_rx_buf;\n \tstruct rx_prod_pkt_bd *prod_bd;\n \n \tprod_rx_buf = &rxr->rx_buf_ring[prod];\n \n-\tRTE_ASSERT(prod_rx_buf->mbuf == NULL);\n+\tRTE_ASSERT(*prod_rx_buf == NULL);\n \tRTE_ASSERT(mbuf != NULL);\n \n-\tprod_rx_buf->mbuf = mbuf;\n+\t*prod_rx_buf = mbuf;\n \n \tprod_bd = &rxr->rx_desc_ring[prod];\n \n@@ -116,13 +116,14 @@ static inline\n struct rte_mbuf *bnxt_consume_rx_buf(struct bnxt_rx_ring_info *rxr,\n \t\t\t\t uint16_t cons)\n {\n-\tstruct bnxt_sw_rx_bd *cons_rx_buf;\n+\tstruct rte_mbuf **cons_rx_buf;\n \tstruct rte_mbuf *mbuf;\n \n \tcons_rx_buf = &rxr->rx_buf_ring[cons];\n-\tRTE_ASSERT(cons_rx_buf->mbuf != NULL);\n-\tmbuf = cons_rx_buf->mbuf;\n-\tcons_rx_buf->mbuf = NULL;\n+\tRTE_ASSERT(*cons_rx_buf != NULL);\n+\tmbuf = *cons_rx_buf;\n+\t*cons_rx_buf = NULL;\n+\n \treturn mbuf;\n }\n \n@@ -226,7 +227,7 @@ static int bnxt_rx_pages(struct bnxt_rx_queue *rxq,\n \tbool is_thor_tpa = tpa_info && BNXT_CHIP_THOR(rxq->bp);\n \n \tfor (i = 0; i < agg_buf; i++) {\n-\t\tstruct bnxt_sw_rx_bd *ag_buf;\n+\t\tstruct rte_mbuf **ag_buf;\n \t\tstruct rte_mbuf *ag_mbuf;\n \n \t\tif (is_thor_tpa) {\n@@ -245,7 +246,7 @@ static int bnxt_rx_pages(struct bnxt_rx_queue *rxq,\n \t\tag_cons = rxcmp->opaque;\n \t\tRTE_ASSERT(ag_cons <= rxr->ag_ring_struct->ring_mask);\n \t\tag_buf = &rxr->ag_buf_ring[ag_cons];\n-\t\tag_mbuf = ag_buf->mbuf;\n+\t\tag_mbuf = *ag_buf;\n \t\tRTE_ASSERT(ag_mbuf != NULL);\n \n \t\tag_mbuf->data_len = rte_le_to_cpu_16(rxcmp->len);\n@@ -256,7 +257,7 @@ static int bnxt_rx_pages(struct bnxt_rx_queue *rxq,\n \t\tlast->next = ag_mbuf;\n \t\tlast = ag_mbuf;\n \n-\t\tag_buf->mbuf = NULL;\n+\t\t*ag_buf = NULL;\n \n \t\t/*\n \t\t * As aggregation buffer consumed out of order in TPA module,\n@@ -866,10 +867,10 @@ uint16_t bnxt_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,\n \n \t\tfor (; cnt;\n \t\t\ti = RING_NEXT(rxr->rx_ring_struct, i), cnt--) {\n-\t\t\tstruct bnxt_sw_rx_bd *rx_buf = &rxr->rx_buf_ring[i];\n+\t\t\tstruct rte_mbuf **rx_buf = &rxr->rx_buf_ring[i];\n \n \t\t\t/* Buffer already allocated for this index. */\n-\t\t\tif (rx_buf->mbuf != NULL)\n+\t\t\tif (*rx_buf != NULL)\n \t\t\t\tcontinue;\n \n \t\t\t/* This slot is empty. Alloc buffer for Rx */\n@@ -960,7 +961,7 @@ int bnxt_init_rx_ring_struct(struct bnxt_rx_queue *rxq, unsigned int socket_id)\n \tring->ring_mask = ring->ring_size - 1;\n \tring->bd = (void *)rxr->rx_desc_ring;\n \tring->bd_dma = rxr->rx_desc_mapping;\n-\tring->vmem_size = ring->ring_size * sizeof(struct bnxt_sw_rx_bd);\n+\tring->vmem_size = ring->ring_size * sizeof(struct rte_mbuf *);\n \tring->vmem = (void **)&rxr->rx_buf_ring;\n \tring->fw_ring_id = INVALID_HW_RING_ID;\n \n@@ -998,7 +999,7 @@ int bnxt_init_rx_ring_struct(struct bnxt_rx_queue *rxq, unsigned int socket_id)\n \tring->ring_mask = ring->ring_size - 1;\n \tring->bd = (void *)rxr->ag_desc_ring;\n \tring->bd_dma = rxr->ag_desc_mapping;\n-\tring->vmem_size = ring->ring_size * sizeof(struct bnxt_sw_rx_bd);\n+\tring->vmem_size = ring->ring_size * sizeof(struct rte_mbuf *);\n \tring->vmem = (void **)&rxr->ag_buf_ring;\n \tring->fw_ring_id = INVALID_HW_RING_ID;\n \n@@ -1039,7 +1040,7 @@ int bnxt_init_one_rx_ring(struct bnxt_rx_queue *rxq)\n \n \tprod = rxr->rx_prod;\n \tfor (i = 0; i < ring->ring_size; i++) {\n-\t\tif (unlikely(!rxr->rx_buf_ring[i].mbuf)) {\n+\t\tif (unlikely(!rxr->rx_buf_ring[i])) {\n \t\t\tif (bnxt_alloc_rx_data(rxq, rxr, prod) != 0) {\n \t\t\t\tPMD_DRV_LOG(WARNING,\n \t\t\t\t\t \"init'ed rx ring %d with %d/%d mbufs only\\n\",\n@@ -1057,7 +1058,7 @@ int bnxt_init_one_rx_ring(struct bnxt_rx_queue *rxq)\n \tprod = rxr->ag_prod;\n \n \tfor (i = 0; i < ring->ring_size; i++) {\n-\t\tif (unlikely(!rxr->ag_buf_ring[i].mbuf)) {\n+\t\tif (unlikely(!rxr->ag_buf_ring[i])) {\n \t\t\tif (bnxt_alloc_ag_data(rxq, rxr, prod) != 0) {\n \t\t\t\tPMD_DRV_LOG(WARNING,\n \t\t\t\t\t \"init'ed AG ring %d with %d/%d mbufs only\\n\",\ndiff --git a/drivers/net/bnxt/bnxt_rxr.h b/drivers/net/bnxt/bnxt_rxr.h\nindex 2bf46cd910..5b9b5f3108 100644\n--- a/drivers/net/bnxt/bnxt_rxr.h\n+++ b/drivers/net/bnxt/bnxt_rxr.h\n@@ -181,10 +181,6 @@ struct bnxt_tpa_info {\n \tstruct rx_tpa_v2_abuf_cmpl\tagg_arr[TPA_MAX_NUM_SEGS];\n };\n \n-struct bnxt_sw_rx_bd {\n-\tstruct rte_mbuf\t\t*mbuf; /* data associated with RX descriptor */\n-};\n-\n struct bnxt_rx_ring_info {\n \tuint16_t\t\trx_prod;\n \tuint16_t\t\tag_prod;\n@@ -194,8 +190,8 @@ struct bnxt_rx_ring_info {\n \n \tstruct rx_prod_pkt_bd\t*rx_desc_ring;\n \tstruct rx_prod_pkt_bd\t*ag_desc_ring;\n-\tstruct bnxt_sw_rx_bd\t*rx_buf_ring; /* sw ring */\n-\tstruct bnxt_sw_rx_bd\t*ag_buf_ring; /* sw ring */\n+\tstruct rte_mbuf\t\t**rx_buf_ring; /* sw ring */\n+\tstruct rte_mbuf\t\t**ag_buf_ring; /* sw ring */\n \n \trte_iova_t\t\trx_desc_mapping;\n \trte_iova_t\t\tag_desc_mapping;\ndiff --git a/drivers/net/bnxt/bnxt_rxtx_vec_neon.c b/drivers/net/bnxt/bnxt_rxtx_vec_neon.c\nindex bf76c2ac26..eff196f3a0 100644\n--- a/drivers/net/bnxt/bnxt_rxtx_vec_neon.c\n+++ b/drivers/net/bnxt/bnxt_rxtx_vec_neon.c\n@@ -29,7 +29,7 @@ static inline void\n bnxt_rxq_rearm(struct bnxt_rx_queue *rxq, struct bnxt_rx_ring_info *rxr)\n {\n \tstruct rx_prod_pkt_bd *rxbds = &rxr->rx_desc_ring[rxq->rxrearm_start];\n-\tstruct bnxt_sw_rx_bd *rx_bufs = &rxr->rx_buf_ring[rxq->rxrearm_start];\n+\tstruct rte_mbuf **rx_bufs = &rxr->rx_buf_ring[rxq->rxrearm_start];\n \tstruct rte_mbuf *mb0, *mb1;\n \tint i;\n \n@@ -51,8 +51,8 @@ bnxt_rxq_rearm(struct bnxt_rx_queue *rxq, struct bnxt_rx_ring_info *rxr)\n \t\tuint64x2_t buf_addr0, buf_addr1;\n \t\tuint64x2_t rxbd0, rxbd1;\n \n-\t\tmb0 = rx_bufs[0].mbuf;\n-\t\tmb1 = rx_bufs[1].mbuf;\n+\t\tmb0 = rx_bufs[0];\n+\t\tmb1 = rx_bufs[1];\n \n \t\t/* Load address fields from both mbufs */\n \t\tbuf_addr0 = vld1q_u64((uint64_t *)&mb0->buf_addr);\n@@ -260,9 +260,9 @@ bnxt_recv_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts,\n \t\t\traw_cons = tmp_raw_cons;\n \t\t\tcons = rxcmp->opaque;\n \n-\t\t\tmbuf = rxr->rx_buf_ring[cons].mbuf;\n+\t\t\tmbuf = rxr->rx_buf_ring[cons];\n \t\t\trte_prefetch0(mbuf);\n-\t\t\trxr->rx_buf_ring[cons].mbuf = NULL;\n+\t\t\trxr->rx_buf_ring[cons] = NULL;\n \n \t\t\t/* Set constant fields from mbuf initializer. */\n \t\t\tvst1q_u64((uint64_t *)&mbuf->rearm_data, mbuf_init);\ndiff --git a/drivers/net/bnxt/bnxt_rxtx_vec_sse.c b/drivers/net/bnxt/bnxt_rxtx_vec_sse.c\nindex 98220bc1b3..822e43343f 100644\n--- a/drivers/net/bnxt/bnxt_rxtx_vec_sse.c\n+++ b/drivers/net/bnxt/bnxt_rxtx_vec_sse.c\n@@ -33,7 +33,7 @@ static inline void\n bnxt_rxq_rearm(struct bnxt_rx_queue *rxq, struct bnxt_rx_ring_info *rxr)\n {\n \tstruct rx_prod_pkt_bd *rxbds = &rxr->rx_desc_ring[rxq->rxrearm_start];\n-\tstruct bnxt_sw_rx_bd *rx_bufs = &rxr->rx_buf_ring[rxq->rxrearm_start];\n+\tstruct rte_mbuf **rx_bufs = &rxr->rx_buf_ring[rxq->rxrearm_start];\n \tstruct rte_mbuf *mb0, *mb1;\n \tint i;\n \n@@ -55,8 +55,8 @@ bnxt_rxq_rearm(struct bnxt_rx_queue *rxq, struct bnxt_rx_ring_info *rxr)\n \t\t__m128i buf_addr0, buf_addr1;\n \t\t__m128i rxbd0, rxbd1;\n \n-\t\tmb0 = rx_bufs[0].mbuf;\n-\t\tmb1 = rx_bufs[1].mbuf;\n+\t\tmb0 = rx_bufs[0];\n+\t\tmb1 = rx_bufs[1];\n \n \t\t/* Load address fields from both mbufs */\n \t\tbuf_addr0 = _mm_loadu_si128((__m128i *)&mb0->buf_addr);\n@@ -265,9 +265,9 @@ bnxt_recv_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts,\n \t\t\traw_cons = tmp_raw_cons;\n \t\t\tcons = rxcmp->opaque;\n \n-\t\t\tmbuf = rxr->rx_buf_ring[cons].mbuf;\n+\t\t\tmbuf = rxr->rx_buf_ring[cons];\n \t\t\trte_prefetch0(mbuf);\n-\t\t\trxr->rx_buf_ring[cons].mbuf = NULL;\n+\t\t\trxr->rx_buf_ring[cons] = NULL;\n \n \t\t\t/* Set constant fields from mbuf initializer. */\n \t\t\t_mm_store_si128((__m128i *)&mbuf->rearm_data,\n", "prefixes": [ "03/12" ] }{ "id": 77067, "url": "