netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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;

  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).