On Mon, Feb 09, 2026 at 04:14:38PM +0000, Max Tottenham wrote:
> When probing an SF as a vDPA device, mlx5_roce_disable() targets the
> parent PF address (via mlx5_dev_to_pci_str). This incorrectly attempts
> to disable ROCE on the parent PF rather than the SF itself.
> 
> This causes vDPA probe failures when the parent PF already has an open
> IB context (e.g., probed for uplink ports or SF representors).
> 
> Properly disable ROCE for auxiliary devices by using the correct devlink
> attributes:
> - DEVLINK_ATTR_BUS_NAME = "auxiliary"
> - DEVLINK_ATTR_DEV_NAME = device name from rte_device->name
> 
> Refactor mlx5_nl_enable_roce_get(), mlx5_nl_enable_roce_set(), and
> mlx5_nl_driver_reload() to accept bus_name and dev_name parameters
> instead of hardcoding "pci". This allows the same netlink code path
> to work for both PCI and auxiliary bus devices.
> 
> For PCI devices, behavior is unchanged: try netlink first, fall back
> to sysfs. For auxiliary devices, only netlink is used since sysfs
> ROCE control is PCI-based.

Since this is a fix, please add the following Fixes tag:

    Fixes: 662d0dc67192 ("common/mlx5: disable RoCE in device context creation")

> 
> Signed-off-by: Max Tottenham <[email protected]>

Reply via email to