On Thu, Mar 23, 2023 at 10:14:31AM +0000, Liu, Yi L wrote: > > From: Jason Gunthorpe <jgg@xxxxxxxxxx> > > Sent: Tuesday, March 21, 2023 3:08 AM > > > > On Thu, Mar 16, 2023 at 05:41:55AM -0700, Yi Liu wrote: > > > This extends both vfio_file_is_valid() and vfio_file_has_dev() to accept > > > device file from the vfio PCI hot reset. > > > > > > Signed-off-by: Yi Liu <yi.l.liu@xxxxxxxxx> > > > --- > > > drivers/vfio/vfio_main.c | 23 +++++++++++++++++++---- > > > 1 file changed, 19 insertions(+), 4 deletions(-) > > > > > > diff --git a/drivers/vfio/vfio_main.c b/drivers/vfio/vfio_main.c > > > index fe7446805afd..ebbb6b91a498 100644 > > > --- a/drivers/vfio/vfio_main.c > > > +++ b/drivers/vfio/vfio_main.c > > > @@ -1154,13 +1154,23 @@ const struct file_operations vfio_device_fops > > = { > > > .mmap = vfio_device_fops_mmap, > > > }; > > > > > > +static struct vfio_device *vfio_device_from_file(struct file *file) > > > +{ > > > + struct vfio_device *device = file->private_data; > > > > Isn't this a df now? > > Not yet. It is placed before the cdev series. So it is vfio_device here. > > > > + if (file->f_op != &vfio_device_fops) > > > + return NULL; > > > + return device; > > > +} > > > > The device has to be bound to be a security proof. > > I think it is because this helper is used by vfio_file_has_dev(). This > requires to be bound to security proof. For now, the device fd is > got via group. So as long s user can get it, it should have been bound. > > In the later cdev series, the below helper is added to ensure > given device file has bound to security proof (a.k.a access_granted). Yes OK that makes senese Jason