Re: [PATCH net-next 1/5] net/mlx5: nodnic: Introduce the mlx5_nodnic driver
flat view
From: Simon Horman <horms@kernel.org>
Date: 2026-10-02 17:16:14
Also in:
lkml
On Wed, Sep 30, 2026 at 03:57:04PM +0300, Tariq Toukan wrote:
From: Shahar Shitrit <redacted> 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 <redacted> Reviewed-by: Carolina Jubran <redacted> Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
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