From: Simon Horman <horms@kernel.org>
To: Bhargava Marreddy <bhargava.marreddy@broadcom.com>
Cc: davem@davemloft.net, edumazet@google.com, kuba@kernel.org,
pabeni@redhat.com, andrew+netdev@lunn.ch, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org, michael.chan@broadcom.com,
pavan.chebbi@broadcom.com, vsrama-krishna.nemani@broadcom.com,
vikas.gupta@broadcom.com,
Rajashekar Hudumula <rajashekar.hudumula@broadcom.com>
Subject: Re: [v7, net-next 03/10] bng_en: Add initial support for CP and NQ rings
Date: Tue, 16 Sep 2025 15:54:57 +0100 [thread overview]
Message-ID: <20250916145457.GH224143@horms.kernel.org> (raw)
In-Reply-To: <20250911193505.24068-4-bhargava.marreddy@broadcom.com>
On Fri, Sep 12, 2025 at 01:04:58AM +0530, Bhargava Marreddy wrote:
> Allocate CP and NQ related data structures and add support to
> associate NQ and CQ rings. Also, add the association of NQ, NAPI,
> and interrupts.
>
> Signed-off-by: Bhargava Marreddy <bhargava.marreddy@broadcom.com>
> Reviewed-by: Vikas Gupta <vikas.gupta@broadcom.com>
> Reviewed-by: Rajashekar Hudumula <rajashekar.hudumula@broadcom.com>
...
> +static int bnge_alloc_nq_tree(struct bnge_net *bn)
> +{
> + int i, j, ulp_msix, rc = -ENOMEM;
> + struct bnge_dev *bd = bn->bd;
> + int tcs = 1;
> +
> + ulp_msix = bnge_aux_get_msix(bd);
> + for (i = 0, j = 0; i < bd->nq_nr_rings; i++) {
> + bool sh = !!(bd->flags & BNGE_EN_SHARED_CHNL);
> + struct bnge_napi *bnapi = bn->bnapi[i];
> + struct bnge_nq_ring_info *nqr;
> + struct bnge_cp_ring_info *cpr;
> + struct bnge_ring_struct *ring;
> + int cp_count = 0, k;
> + int rx = 0, tx = 0;
> +
> + nqr = &bnapi->nq_ring;
> + nqr->bnapi = bnapi;
> + ring = &nqr->ring_struct;
> +
> + rc = bnge_alloc_ring(bd, &ring->ring_mem);
> + if (rc)
> + goto err_free_nq_tree;
> +
> + ring->map_idx = ulp_msix + i;
> +
> + if (i < bd->rx_nr_rings) {
> + cp_count++;
> + rx = 1;
> + }
> +
> + if ((sh && i < bd->tx_nr_rings) ||
> + (!sh && i >= bd->rx_nr_rings)) {
> + cp_count += tcs;
> + tx = 1;
> + }
> +
> + nqr->cp_ring_arr = kcalloc(cp_count, sizeof(*cpr),
> + GFP_KERNEL);
> + if (!nqr->cp_ring_arr)
I think that rc should be set to a negative return value, say -ENOMEM,
here. The function returns rc. And as is, rc is 0 at this point.
Flagged by Smatch.
> + goto err_free_nq_tree;
> +
> + nqr->cp_ring_count = cp_count;
> +
> + for (k = 0; k < cp_count; k++) {
> + cpr = &nqr->cp_ring_arr[k];
> + rc = alloc_one_cp_ring(bn, cpr);
> + if (rc)
> + goto err_free_nq_tree;
> +
> + cpr->bnapi = bnapi;
> + cpr->cp_idx = k;
> + if (!k && rx) {
> + bn->rx_ring[i].rx_cpr = cpr;
> + cpr->cp_ring_type = BNGE_NQ_HDL_TYPE_RX;
> + } else {
> + int n, tc = k - rx;
> +
> + n = BNGE_TC_TO_RING_BASE(bd, tc) + j;
> + bn->tx_ring[n].tx_cpr = cpr;
> + cpr->cp_ring_type = BNGE_NQ_HDL_TYPE_TX;
> + }
> + }
> + if (tx)
> + j++;
> + }
> + return 0;
> +
> +err_free_nq_tree:
> + bnge_free_nq_tree(bn);
> + return rc;
> +}
> +
> static bool bnge_separate_head_pool(struct bnge_rx_ring_info *rxr)
> {
> return rxr->need_head_pool || PAGE_SIZE > BNGE_RX_PAGE_SIZE;
next prev parent reply other threads:[~2025-09-16 14:55 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-11 19:34 [v7, net-next 00/10] Add more functionality to BNGE Bhargava Marreddy
2025-09-11 19:34 ` [v7, net-next 01/10] bng_en: make bnge_alloc_ring() self-unwind on failure Bhargava Marreddy
2025-09-16 15:12 ` Simon Horman
2025-09-18 9:50 ` Bhargava Chenna Marreddy
2025-09-18 19:06 ` Simon Horman
2025-09-11 19:34 ` [v7, net-next 02/10] bng_en: Add initial support for RX and TX rings Bhargava Marreddy
2025-09-11 19:34 ` [v7, net-next 03/10] bng_en: Add initial support for CP and NQ rings Bhargava Marreddy
2025-09-16 14:54 ` Simon Horman [this message]
2025-09-18 9:40 ` Bhargava Chenna Marreddy
2025-09-11 19:34 ` [v7, net-next 04/10] bng_en: Introduce VNIC Bhargava Marreddy
2025-09-11 19:35 ` [v7, net-next 05/10] bng_en: Initialise core resources Bhargava Marreddy
2025-09-16 15:45 ` Simon Horman
2025-09-18 10:49 ` Bhargava Chenna Marreddy
2025-09-11 19:35 ` [v7, net-next 06/10] bng_en: Allocate packet buffers Bhargava Marreddy
2025-09-14 20:31 ` Jakub Kicinski
2025-09-15 17:56 ` Bhargava Chenna Marreddy
2025-09-15 21:52 ` Jakub Kicinski
2025-09-11 19:35 ` [v7, net-next 07/10] bng_en: Allocate stat contexts Bhargava Marreddy
2025-09-11 19:35 ` [v7, net-next 08/10] bng_en: Register rings with the firmware Bhargava Marreddy
2025-09-16 15:51 ` Simon Horman
2025-09-18 10:41 ` Bhargava Chenna Marreddy
2025-09-18 19:06 ` Simon Horman
2025-09-17 20:14 ` [External] : " ALOK TIWARI
2025-09-11 19:35 ` [v7, net-next 09/10] bng_en: Register default VNIC Bhargava Marreddy
2025-09-17 20:18 ` ALOK TIWARI
2025-09-19 6:28 ` Bhargava Chenna Marreddy
2025-09-11 19:35 ` [v7, net-next 10/10] bng_en: Configure " Bhargava Marreddy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250916145457.GH224143@horms.kernel.org \
--to=horms@kernel.org \
--cc=andrew+netdev@lunn.ch \
--cc=bhargava.marreddy@broadcom.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=michael.chan@broadcom.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=pavan.chebbi@broadcom.com \
--cc=rajashekar.hudumula@broadcom.com \
--cc=vikas.gupta@broadcom.com \
--cc=vsrama-krishna.nemani@broadcom.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).