If the memory map changes before the driver status is
VIRTIO_CONFIG_S_DRIVER_OK, don't attempt to create resources because it
may fail. For example, if the VQ is not ready there is no point in
creating resources.

Fixes: 1a86b377aa21 ("vdpa/mlx5: Add VDPA driver for supported mlx5 devices")
Signed-off-by: Eli Cohen <e...@nvidia.com>
---
 drivers/vdpa/mlx5/net/mlx5_vnet.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/vdpa/mlx5/net/mlx5_vnet.c 
b/drivers/vdpa/mlx5/net/mlx5_vnet.c
index 9df69d5efe8c..c89cd48a0aab 100644
--- a/drivers/vdpa/mlx5/net/mlx5_vnet.c
+++ b/drivers/vdpa/mlx5/net/mlx5_vnet.c
@@ -1645,6 +1645,9 @@ static int mlx5_vdpa_change_map(struct mlx5_vdpa_net 
*ndev, struct vhost_iotlb *
        if (err)
                goto err_mr;
 
+       if (!(ndev->mvdev.status & VIRTIO_CONFIG_S_DRIVER_OK))
+               return 0;
+
        restore_channels_info(ndev);
        err = setup_driver(ndev);
        if (err)
-- 
2.26.0

Reply via email to