On Fri, Dec 1, 2023 at 11:50 AM Dragos Tatulea <dtatulea@xxxxxxxxxx> wrote: > > .set_vq_state will set the indices and mark the fields to be modified in > the hw vq. > > Signed-off-by: Dragos Tatulea <dtatulea@xxxxxxxxxx> Acked-by: Eugenio Pérez <eperezma@xxxxxxxxxx> > --- > drivers/vdpa/mlx5/net/mlx5_vnet.c | 8 ++++++++ > include/linux/mlx5/mlx5_ifc_vdpa.h | 2 ++ > 2 files changed, 10 insertions(+) > > diff --git a/drivers/vdpa/mlx5/net/mlx5_vnet.c b/drivers/vdpa/mlx5/net/mlx5_vnet.c > index 2277daf4814f..6325aef045e2 100644 > --- a/drivers/vdpa/mlx5/net/mlx5_vnet.c > +++ b/drivers/vdpa/mlx5/net/mlx5_vnet.c > @@ -1249,6 +1249,12 @@ static int modify_virtqueue(struct mlx5_vdpa_net *ndev, > MLX5_SET64(virtio_q, vq_ctx, available_addr, mvq->driver_addr); > } > > + if (mvq->modified_fields & MLX5_VIRTQ_MODIFY_MASK_VIRTIO_Q_AVAIL_IDX) > + MLX5_SET(virtio_net_q_object, obj_context, hw_available_index, mvq->avail_idx); > + > + if (mvq->modified_fields & MLX5_VIRTQ_MODIFY_MASK_VIRTIO_Q_USED_IDX) > + MLX5_SET(virtio_net_q_object, obj_context, hw_used_index, mvq->used_idx); > + > MLX5_SET64(virtio_net_q_object, obj_context, modify_field_select, mvq->modified_fields); > err = mlx5_cmd_exec(ndev->mvdev.mdev, in, inlen, out, sizeof(out)); > if (err) > @@ -2328,6 +2334,8 @@ static int mlx5_vdpa_set_vq_state(struct vdpa_device *vdev, u16 idx, > > mvq->used_idx = state->split.avail_index; > mvq->avail_idx = state->split.avail_index; > + mvq->modified_fields |= MLX5_VIRTQ_MODIFY_MASK_VIRTIO_Q_AVAIL_IDX | > + MLX5_VIRTQ_MODIFY_MASK_VIRTIO_Q_USED_IDX; > return 0; > } > > diff --git a/include/linux/mlx5/mlx5_ifc_vdpa.h b/include/linux/mlx5/mlx5_ifc_vdpa.h > index 9594ac405740..32e712106e68 100644 > --- a/include/linux/mlx5/mlx5_ifc_vdpa.h > +++ b/include/linux/mlx5/mlx5_ifc_vdpa.h > @@ -146,6 +146,8 @@ enum { > MLX5_VIRTQ_MODIFY_MASK_DIRTY_BITMAP_PARAMS = (u64)1 << 3, > MLX5_VIRTQ_MODIFY_MASK_DIRTY_BITMAP_DUMP_ENABLE = (u64)1 << 4, > MLX5_VIRTQ_MODIFY_MASK_VIRTIO_Q_ADDRS = (u64)1 << 6, > + MLX5_VIRTQ_MODIFY_MASK_VIRTIO_Q_AVAIL_IDX = (u64)1 << 7, > + MLX5_VIRTQ_MODIFY_MASK_VIRTIO_Q_USED_IDX = (u64)1 << 8, > MLX5_VIRTQ_MODIFY_MASK_DESC_GROUP_MKEY = (u64)1 << 14, > }; > > -- > 2.42.0 >