On Wed, Nov 5, 2025 at 4:02 PM Cindy Lu <[email protected]> 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]>
> ---
>  drivers/vdpa/mlx5/net/mlx5_vnet.c | 6 ++++++
>  1 file changed, 6 insertions(+)
>
> diff --git a/drivers/vdpa/mlx5/net/mlx5_vnet.c 
> b/drivers/vdpa/mlx5/net/mlx5_vnet.c
> index 82034efb74fc..e38aa3a335fc 100644
> --- a/drivers/vdpa/mlx5/net/mlx5_vnet.c
> +++ b/drivers/vdpa/mlx5/net/mlx5_vnet.c
> @@ -4057,6 +4057,12 @@ static int mlx5_vdpa_set_attr(struct vdpa_mgmt_dev 
> *v_mdev, struct vdpa_device *
>         ndev = to_mlx5_vdpa_ndev(mvdev);
>         mdev = mvdev->mdev;
>         config = &ndev->config;
> +       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");
> +               return err;
> +       }

I don't get the logic here, mgmt risk themselve for such races or what
would happen if we don't do this?

Thanks

>
>         down_write(&ndev->reslock);
>         if (add_config->mask & (1 << VDPA_ATTR_DEV_NET_CFG_MACADDR)) {
> --
> 2.45.0
>


Reply via email to