Re: [PATCH net-next 1/5] net/mlx5: nodnic: Introduce the mlx5_nodnic driver

From: Simon Horman

Date: Fri Oct 02 2026 - 13:18:16 EST


On Wed, Sep 30, 2026 at 03:57:04PM +0300, Tariq Toukan wrote:
> From: Shahar Shitrit <shshitrit@xxxxxxxxxx>
>
> Introduce mlx5_nodnic, a driver for DRAM-less NVIDIA Mellanox NIC
> functions.
>
> It defines a lightweight NIC function intended for contexts where local
> DRAM is unavailable or too costly: embedded controllers, management
> planes, pre-boot environments, or any resource-constrained instantiation
> of a ConnectX NIC. The hardware sends and receives ordinary Ethernet
> frames via SQs, RQs and CQs. There is no encapsulation, no private
> protocol, and no FW interposition: packets are forwarded as standard
> Ethernet between whatever peers are connected to the function. The
> interface is documented in the HW spec and has been in production in
> non-Linux OS drivers for over a decade.
>
> This patch implements the PCI probe and remove flows, including FLR,
> firmware readiness, interface negotiation and capability discovery,
> followed by port and ring configuration.
>
> It also adds the VSC access layer for PCI configuration-space accesses
> to the initialization segment and to the NODNIC configuration registers.
> Set up the event IRQ for link-state notifications, retrieve the port MAC
> address, and implement the netdev lifecycle, including ndo_open and
> ndo_stop.
>
> Signed-off-by: Shahar Shitrit <shshitrit@xxxxxxxxxx>
> Reviewed-by: Carolina Jubran <cjubran@xxxxxxxxxx>
> Signed-off-by: Tariq Toukan <tariqt@xxxxxxxxxx>

Unfortunately this patch introduces a number of Sparse warnings.
Which other than looking like they should be addressed
also appears to have gated sashiko-nipa from running.

.../nodnic/nodnic_pci_vsc.c:336:16: warning: cast to restricted __le32
.../nodnic/nodnic_pci_vsc.c:336:16: warning: incorrect type in return expression (different base types)
.../nodnic/nodnic_pci_vsc.c:336:16: expected unsigned int
.../nodnic/nodnic_pci_vsc.c:336:16: got restricted __be32 [usertype]
.../nodnic/nodnic_pci_vsc.c:341:16: warning: cast to restricted __be32
.../nodnic/nodnic_pci_vsc.c:341:16: warning: incorrect type in return expression (different base types)
.../nodnic/nodnic_pci_vsc.c:341:16: expected unsigned int
.../nodnic/nodnic_pci_vsc.c:341:16: got restricted __le32 [usertype]
.../nodnic/nodnic_pci_vsc.c:363:25: warning: cast to restricted __le32
.../nodnic/nodnic_pci_vsc.c:407:17: warning: cast to restricted __le32
.../nodnic/nodnic_pci_vsc.c:415:14: warning: incorrect type in assignment (different base types)
.../nodnic/nodnic_pci_vsc.c:415:14: expected unsigned int [usertype] data
.../nodnic/nodnic_pci_vsc.c:415:14: got restricted __le32 [usertype]
.../nodnic/en_cfg.c:28:16: warning: incorrect type in assignment (different base types)
.../nodnic/en_cfg.c:28:16: expected unsigned int [usertype] addr_h
.../nodnic/en_cfg.c:28:16: got restricted __be32 [usertype]
.../nodnic/en_cfg.c:117:15: warning: incorrect type in assignment (different base types)
.../nodnic/en_cfg.c:117:15: expected unsigned int [usertype] dbr_h
.../nodnic/en_cfg.c:117:15: got restricted __be32 [usertype]
.../nodnic/en_cfg.c:237:15: warning: incorrect type in assignment (different base types)
.../nodnic/en_cfg.c:237:15: expected unsigned int [usertype] dbr_l
.../nodnic/en_cfg.c:237:15: got restricted __be32 [usertype]
.../nodnic/en_cfg.c:248:15: warning: incorrect type in assignment (different base types)
.../nodnic/en_cfg.c:248:15: expected unsigned int [usertype] dbr_h
.../nodnic/en_cfg.c:248:15: got restricted __be32 [usertype]

--
pw-bot: changes-requested