Re: [PATCH] vdp/mlx5: Fix setting the correct dma_device

From: Leon Romanovsky
Date: Mon Jun 07 2021 - 01:52:12 EST


On Mon, Jun 07, 2021 at 10:30:42AM +0800, Jason Wang wrote:
>
> 在 2021/6/4 下午11:57, Leon Romanovsky 写道:
> > On Fri, Jun 04, 2021 at 10:35:59AM +0800, Jason Wang wrote:
> > > 在 2021/6/3 下午7:22, Eli Cohen 写道:
> > > > Before SF support was introduced, the DMA device was equal to
> > > > mdev->device which was in essence equal to pdev->dev;
> > > > With SF introduction this is no longer true. It has already been
> > > > handled for vhost_vdpa since the reference to the dma device can from
> > > > within mlx5_vdpa. With virtio_vdpa this broke. To fix this we set the
> > > > real dma device when initializing the device.
> > > >
> > > > Fixes: 1a86b377aa21 ("vdpa/mlx5: Add VDPA driver for supported mlx5 devices")
> > >
> > > Note sure this is correct, according to the commit log it should be the
> > > patch that introduces the SF or aux bus support for vDPA.
> > Where did you see that?
> >
> > git log -p drivers/vdpa/mlx5/net/mlx5_vnet.c
> >
> > ...
> > + mvdev->vdev.dma_dev = mdev->device;
> > + err = mlx5_vdpa_alloc_resources(&ndev->mvdev);
> > ...
> > comes from commit 1a86b377aa21 ("vdpa/mlx5: Add VDPA driver for supported mlx5 devices")
>
>
> If I read the commit log and code correctly:
>
> "
>
> With SF introduction this is no longer true.
>
> "
>
> It works before SF is introduced.

Yes, you are right, sorry for the noise.

>
> Thanks
>
>
> >
> > Thanks
> >
> > >
> > > > Signed-off-by: Eli Cohen <elic@xxxxxxxxxx>
> > >
> > > Patch looks correct.
> > >
> > > Thanks
> > >
> > >
> > > > ---
> > > > drivers/vdpa/mlx5/net/mlx5_vnet.c | 2 +-
> > > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > > >
> > > > diff --git a/drivers/vdpa/mlx5/net/mlx5_vnet.c b/drivers/vdpa/mlx5/net/mlx5_vnet.c
> > > > index bc33f2c523d3..a4ff158181e0 100644
> > > > --- a/drivers/vdpa/mlx5/net/mlx5_vnet.c
> > > > +++ b/drivers/vdpa/mlx5/net/mlx5_vnet.c
> > > > @@ -2046,7 +2046,7 @@ static int mlx5_vdpa_dev_add(struct vdpa_mgmt_dev *v_mdev, const char *name)
> > > > if (err)
> > > > goto err_mtu;
> > > > - mvdev->vdev.dma_dev = mdev->device;
> > > > + mvdev->vdev.dma_dev = &mdev->pdev->dev;
> > > > err = mlx5_vdpa_alloc_resources(&ndev->mvdev);
> > > > if (err)
> > > > goto err_mtu;
> > > _______________________________________________
> > > Virtualization mailing list
> > > Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx
> > > https://lists.linuxfoundation.org/mailman/listinfo/virtualization
>