Messages in this thread | | | From | Eugenio Perez Martin <> | Date | Wed, 4 Oct 2023 20:40:27 +0200 | Subject | Re: [PATCH vhost 07/16] vdpa/mlx5: Take cvq iotlb lock during refresh |
| |
On Thu, Sep 28, 2023 at 6:50 PM Dragos Tatulea <dtatulea@nvidia.com> wrote: > > The reslock is taken while refresh is called but iommu_lock is more > specific to this resource. So take the iommu_lock during cvq iotlb > refresh. > > Based on Eugenio's patch [0]. > > [0] https://lore.kernel.org/lkml/20230112142218.725622-4-eperezma@redhat.com/ > > Acked-by: Jason Wang <jasowang@redhat.com> > Suggested-by: Eugenio Pérez <eperezma@redhat.com>
Reviewed-by: Eugenio Pérez <eperezma@redhat.com>
> Signed-off-by: Dragos Tatulea <dtatulea@nvidia.com> > --- > drivers/vdpa/mlx5/core/mr.c | 10 +++++++++- > 1 file changed, 9 insertions(+), 1 deletion(-) > > diff --git a/drivers/vdpa/mlx5/core/mr.c b/drivers/vdpa/mlx5/core/mr.c > index fcb6ae32e9ed..587300e7c18e 100644 > --- a/drivers/vdpa/mlx5/core/mr.c > +++ b/drivers/vdpa/mlx5/core/mr.c > @@ -590,11 +590,19 @@ int mlx5_vdpa_update_cvq_iotlb(struct mlx5_vdpa_dev *mvdev, > struct vhost_iotlb *iotlb, > unsigned int asid) > { > + int err; > + > if (mvdev->group2asid[MLX5_VDPA_CVQ_GROUP] != asid) > return 0; > > + spin_lock(&mvdev->cvq.iommu_lock); > + > prune_iotlb(mvdev); > - return dup_iotlb(mvdev, iotlb); > + err = dup_iotlb(mvdev, iotlb); > + > + spin_unlock(&mvdev->cvq.iommu_lock); > + > + return err; > } > > int mlx5_vdpa_create_dma_mr(struct mlx5_vdpa_dev *mvdev) > -- > 2.41.0 >
| |