RE: [PATCH v2 4/7] vfio/mdev: Pass in a struct vfio_device * to vfio_dma_rw()

Tian, Kevin
2022-04-24T05:52:20Z

> From: Jason Gunthorpe
> Sent: Saturday, April 23, 2022 2:00 AM
>
> On Fri, Apr 22, 2022 at 01:50:00AM +0000, Tian, Kevin wrote:
> > > From: Jason Gunthorpe <jgg@nvidia.com>
> > > Sent: Friday, April 22, 2022 12:29 AM
> > >
> > > Every caller has a readily available vfio_device pointer, use that instead
> > > of passing in a generic struct device. The struct vfio_device already
> > > contains the group we need so this avoids complexity, extra refcountings,
> > > and a confusing lifecycle model.
> >
> > Using the same description as last patch leaves the impression that
> > the two patches do the exactly same type of change. But this
> > patch actually includes one more change to grab a reference on the
> > container. This is worth an explanation.
>
> How about this:
>
> Every caller has a readily available vfio_device pointer, use that instead
> of passing in a generic struct device. Change vfio_dma_rw() to take in the
> struct vfio_device and move the container users that would have been held
> by vfio_group_get_external_user_from_dev() to vfio_dma_rw() directly, like
> vfio_pin/unpin_pages().
>

Yes, this is clearer.