All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.