X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fvdpa%2Fmlx5%2Fmlx5_vdpa_lm.c;h=273c46f346a0563d859a9537193ddeb82e8c43ff;hb=23f627e0ed28;hp=26b7ce1c8b708434ac30d5d69d6ce4aa27a9dcad;hpb=7497873f23e73e4421ae44c1182c85bf98b0f95b;p=dpdk.git diff --git a/drivers/vdpa/mlx5/mlx5_vdpa_lm.c b/drivers/vdpa/mlx5/mlx5_vdpa_lm.c index 26b7ce1c8b..273c46f346 100644 --- a/drivers/vdpa/mlx5/mlx5_vdpa_lm.c +++ b/drivers/vdpa/mlx5/mlx5_vdpa_lm.c @@ -19,8 +19,13 @@ mlx5_vdpa_logging_enable(struct mlx5_vdpa_priv *priv, int enable) for (i = 0; i < priv->nr_virtqs; ++i) { attr.queue_index = i; - if (mlx5_devx_cmd_modify_virtq(priv->virtqs[i].virtq, &attr)) { - DRV_LOG(ERR, "Failed to modify virtq %d logging.", i); + if (!priv->virtqs[i].virtq) { + DRV_LOG(DEBUG, "virtq %d is invalid for dirty bitmap " + "enabling.", i); + } else if (mlx5_devx_cmd_modify_virtq(priv->virtqs[i].virtq, + &attr)) { + DRV_LOG(ERR, "Failed to modify virtq %d for dirty " + "bitmap enabling.", i); return -1; } } @@ -68,8 +73,11 @@ mlx5_vdpa_dirty_bitmap_set(struct mlx5_vdpa_priv *priv, uint64_t log_base, attr.dirty_bitmap_mkey = mr->mkey->id; for (i = 0; i < priv->nr_virtqs; ++i) { attr.queue_index = i; - if (mlx5_devx_cmd_modify_virtq(priv->virtqs[i].virtq, &attr)) { - DRV_LOG(ERR, "Failed to modify virtq %d for lm.", i); + if (!priv->virtqs[i].virtq) { + DRV_LOG(DEBUG, "virtq %d is invalid for LM.", i); + } else if (mlx5_devx_cmd_modify_virtq(priv->virtqs[i].virtq, + &attr)) { + DRV_LOG(ERR, "Failed to modify virtq %d for LM.", i); goto err; } } @@ -102,10 +110,15 @@ mlx5_vdpa_lm_log(struct mlx5_vdpa_priv *priv) if (!RTE_VHOST_NEED_LOG(features)) return 0; for (i = 0; i < priv->nr_virtqs; ++i) { - ret = mlx5_vdpa_virtq_stop(priv, i); - if (ret) { - DRV_LOG(ERR, "Failed to stop virtq %d.", i); - return -1; + if (!priv->virtqs[i].virtq) { + DRV_LOG(DEBUG, "virtq %d is invalid for LM log.", i); + } else { + ret = mlx5_vdpa_virtq_stop(priv, i); + if (ret) { + DRV_LOG(ERR, "Failed to stop virtq %d for LM " + "log.", i); + return -1; + } } rte_vhost_log_used_vring(priv->vid, i, 0, MLX5_VDPA_USED_RING_LEN(priv->virtqs[i].vq_size));