public inbox for netdev@vger.kernel.org
 help / color / mirror / Atom feed
From: Jakub Kicinski <kuba@kernel.org>
To: illusion.wang@nebula-matrix.com
Cc: Jakub Kicinski <kuba@kernel.org>,
	sam.chen@nebula-matrix.com, lukas.bulwahn@redhat.com,
	dimon.zhao@nebula-matrix.com, netdev@vger.kernel.org,
	vadim.fedorenko@linux.dev,
	linux-kernel@vger.kernel.org (open list),
	corbet@lwn.net, lorenzo@kernel.org, alvin.wang@nebula-matrix.com,
	andrew+netdev@lunn.ch, linux-doc@vger.kernel.org,
	pabeni@redhat.com, edumazet@google.com, horms@kernel.org
Subject: Re: [v4,net-next,08/11] net/nebula-matrix: add vsi resource implementation
Date: Fri,  6 Feb 2026 18:24:59 -0800	[thread overview]
Message-ID: <20260207022459.4017950-1-kuba@kernel.org> (raw)
In-Reply-To: <20260206021608.85381-9-illusion.wang@nebula-matrix.com>

This is an AI-generated review of your patch. The human sending this
email says "This is an automated AI code reviewer, please treat what
it says with a grain of salt."

For local reproduction steps see https://netdev-ai.bots.linux.dev/ai-local.html
---
net/nebula-matrix: add vsi resource implementation

This patch adds vsi (virtual station interface) resource implementation
to the nebula-matrix driver, including initialization for various
chip modules such as dped, uped, dsch, ustore, dstore, dvn, uvn, and uqm.

> diff --git a/drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_hw_leonis/nbl_hw_leonis.c b/drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_hw_leonis/nbl_hw_leonis.c
> index 837a4591849d..a34dad884b47 100644
> --- a/drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_hw_leonis/nbl_hw_leonis.c
> +++ b/drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_hw_leonis/nbl_hw_leonis.c

[ ... ]

> +static int nbl_ustore_init(struct nbl_hw_mgt *hw_mgt, u8 eth_num)
> +{
> +	struct nbl_ustore_port_drop_th drop_th;
> +	struct ustore_pkt_len pkt_len;
> +	int i;
> +
> +	nbl_hw_rd_regs(hw_mgt, NBL_USTORE_PKT_LEN_ADDR, (u8 *)&pkt_len,
> +		       sizeof(pkt_len));
> +	/* min arp packet length 42 (14 + 28) */
> +	pkt_len.min = 42;
> +	nbl_hw_wr_regs(hw_mgt, NBL_USTORE_PKT_LEN_ADDR, (u8 *)&pkt_len,
> +		       sizeof(pkt_len));
> +
> +	drop_th.en = 1;
> +	if (eth_num == 1)
> +		drop_th.disc_th = NBL_USTORE_SIGNLE_ETH_DROP_TH;
> +	else if (eth_num == 2)
> +		drop_th.disc_th = NBL_USTORE_DUAL_ETH_DROP_TH;
> +	else
> +		drop_th.disc_th = NBL_USTORE_QUAD_ETH_DROP_TH;
> +
> +	for (i = 0; i < 4; i++)
> +		nbl_hw_wr_regs(hw_mgt, NBL_USTORE_PORT_DROP_TH_REG_ARR(i),
> +			       (u8 *)&drop_th, sizeof(drop_th));

Is the drop_th structure fully initialized before writing to hardware?
The structure declaration doesn't initialize its fields, and only 'en'
and 'disc_th' fields are set before the entire structure is written to
hardware registers. Looking at the structure definition in
nbl_hw_leonis.h:775, nbl_ustore_port_drop_th has a 19-bit reserved
field 'rsv':

struct nbl_ustore_port_drop_th {
	u32 disc_th : 12;
	u32 rsv : 19;
	u32 en : 1;
} __packed;

The uninitialized 'rsv' field would contain undefined stack values when
written to hardware.

Other similar structures in this patch use zero-initialization (e.g.,
nbl_shaping_dport, nbl_shaping_dvn_dport, dsch_vn_quanta). Would it be
safer to initialize drop_th with '= { 0 }' to ensure all fields,
including reserved bits, are zeroed?

[ ... ]

Andrew Lunn raised a concern in v3 about the NBL_CORE naming in the
Kconfig (not modified in this commit):

https://lore.kernel.org/netdev/88c7e349-f941-4216-89ca-70a49e82b378@lunn.ch/

"_CORE is a bit unusual for a driver. CORE is generally a library which
is shared by a number of drivers. It does not have a tristate string,
it is just selected by the drivers which need it."

The author acknowledged this feedback but indicated it is still under
discussion. Will this naming issue be addressed in a follow-up patch?

  reply	other threads:[~2026-02-07  2:25 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-02-06  2:15 [PATCH v4 net-next 00/11] nbl driver for Nebulamatrix NICs illusion.wang
2026-02-06  2:15 ` [PATCH v4 net-next 01/11] net/nebula-matrix: add minimum nbl build framework illusion.wang
2026-02-06  3:01   ` Andrew Lunn
2026-02-07  2:24   ` [v4,net-next,01/11] " Jakub Kicinski
2026-02-06  2:15 ` [PATCH v4 net-next 02/11] net/nebula-matrix: add our driver architecture illusion.wang
2026-02-06  3:39   ` Andrew Lunn
2026-02-06  9:26     ` 回复:[PATCH " Illusion Wang
2026-02-07 17:19       ` Andrew Lunn
2026-02-07  2:24   ` [v4,net-next,02/11] " Jakub Kicinski
2026-02-06  2:15 ` [PATCH v4 net-next 03/11] net/nebula-matrix: add chip related definitions illusion.wang
2026-02-07  2:24   ` [v4,net-next,03/11] " Jakub Kicinski
2026-02-06  2:15 ` [PATCH v4 net-next 04/11] net/nebula-matrix: channel msg value and msg struct illusion.wang
2026-02-06  2:15 ` [PATCH v4 net-next 05/11] net/nebula-matrix: add channel layer illusion.wang
2026-02-06  3:47   ` Andrew Lunn
2026-02-07  2:24   ` [v4,net-next,05/11] " Jakub Kicinski
2026-02-06  2:15 ` [PATCH v4 net-next 06/11] net/nebula-matrix: add common resource implementation illusion.wang
2026-02-07  2:24   ` [v4,net-next,06/11] " Jakub Kicinski
2026-02-06  2:15 ` [PATCH v4 net-next 07/11] net/nebula-matrix: add intr " illusion.wang
2026-02-07  2:24   ` [v4,net-next,07/11] " Jakub Kicinski
2026-02-06  2:16 ` [PATCH v4 net-next 08/11] net/nebula-matrix: add vsi " illusion.wang
2026-02-07  2:24   ` Jakub Kicinski [this message]
2026-02-06  2:16 ` [PATCH v4 net-next 09/11] net/nebula-matrix: add Dispatch layer implementation illusion.wang
2026-02-06  2:16 ` [PATCH v4 net-next 10/11] net/nebula-matrix: add common/ctrl dev init/reinit operation illusion.wang
2026-02-07  2:25   ` [v4,net-next,10/11] " Jakub Kicinski
2026-02-06  2:16 ` [PATCH v4 net-next 11/11] net/nebula-matrix: add common dev start/stop operation illusion.wang
2026-02-07  2:25   ` [v4,net-next,11/11] " Jakub Kicinski
2026-02-10  2:07     ` 回复:[v4,net-next,11/11] " Illusion Wang
2026-02-10 13:42       ` Andrew Lunn

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=20260207022459.4017950-1-kuba@kernel.org \
    --to=kuba@kernel.org \
    --cc=alvin.wang@nebula-matrix.com \
    --cc=andrew+netdev@lunn.ch \
    --cc=corbet@lwn.net \
    --cc=dimon.zhao@nebula-matrix.com \
    --cc=edumazet@google.com \
    --cc=horms@kernel.org \
    --cc=illusion.wang@nebula-matrix.com \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lorenzo@kernel.org \
    --cc=lukas.bulwahn@redhat.com \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=sam.chen@nebula-matrix.com \
    --cc=vadim.fedorenko@linux.dev \
    /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