Hi Cindy,

Thanks for your patch!

On 29.12.25 08:16, Cindy Lu wrote:
> Add logic in mlx5_vdpa_set_attr() to ensure the VIRTIO_NET_F_MAC
> feature bit is properly set only when the device is not yet in
> the DRIVER_OK (running) state.
> 
> This makes the MAC address visible in the output of:
> 
>  vdpa dev config show -jp
> 
> when the device is created without an initial MAC address.
> 
> Signed-off-by: Cindy Lu <[email protected]>

Having a cover letter with the summary, history and links series would
make the review process easier.

> ---
>  drivers/vdpa/mlx5/net/mlx5_vnet.c | 13 +++++++++++--
>  1 file changed, 11 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/vdpa/mlx5/net/mlx5_vnet.c 
> b/drivers/vdpa/mlx5/net/mlx5_vnet.c
> index ddaa1366704b..6e42bae7c9a1 100644
> --- a/drivers/vdpa/mlx5/net/mlx5_vnet.c
> +++ b/drivers/vdpa/mlx5/net/mlx5_vnet.c
> @@ -4049,7 +4049,7 @@ static int mlx5_vdpa_set_attr(struct vdpa_mgmt_dev 
> *v_mdev, struct vdpa_device *
>       struct mlx5_vdpa_dev *mvdev;
>       struct mlx5_vdpa_net *ndev;
>       struct mlx5_core_dev *mdev;
> -     int err = -EOPNOTSUPP;
> +     int err = 0;
>  
>       mvdev = to_mvdev(dev);
>       ndev = to_mlx5_vdpa_ndev(mvdev);
> @@ -4057,13 +4057,22 @@ static int mlx5_vdpa_set_attr(struct vdpa_mgmt_dev 
> *v_mdev, struct vdpa_device *
>       config = &ndev->config;
>  
>       down_write(&ndev->reslock);
> -     if (add_config->mask & (1 << VDPA_ATTR_DEV_NET_CFG_MACADDR)) {
> +
> +     if (add_config->mask & BIT_ULL(VDPA_ATTR_DEV_NET_CFG_MACADDR)) {
> +             if (!(ndev->mvdev.status & VIRTIO_CONFIG_S_DRIVER_OK)) {
> +                     ndev->mvdev.mlx_features |= BIT_ULL(VIRTIO_NET_F_MAC);
> +             } else {
> +                     mlx5_vdpa_warn(mvdev, "device running, skip updating 
> MAC\n");
> +                     err = -EBUSY;
> +                     goto out;
> +             }
>               pfmdev = pci_get_drvdata(pci_physfn(mdev->pdev));
>               err = mlx5_mpfs_add_mac(pfmdev, config->mac);
>               if (!err)
>                       ether_addr_copy(config->mac, add_config->net.mac);
>       }
>  
> +out:
>       up_write(&ndev->reslock);
>       return err;
>  }
The patch itself makes sense. For it you can add:

Reviewed-by: Dragos Tatulea <[email protected]>

Thanks,
Dragos

Reply via email to