[Intel-gfx] [PATCH v2 07/11] vfio-iommufd: Support iommufd for physical VFIO devices
Jason Gunthorpe
jgg at nvidia.com
Tue Nov 8 17:48:01 UTC 2022
On Mon, Nov 07, 2022 at 10:10:59PM -0800, Nicolin Chen wrote:
> > @@ -812,6 +821,7 @@ static int vfio_device_first_open(struct vfio_device *device)
> > device->kvm = NULL;
> > if (device->group->container)
> > vfio_group_unuse_container(device->group);
> > + vfio_iommufd_unbind(device);
>
> ...yet, missing here, which could result in kernel oops.
>
> Should probably add something similar:
> + if (device->group->iommufd)
> + vfio_iommufd_unbind(device);
>
> Or should check !vdev->iommufd_device inside the ->unbind.
Lets keep it symmetric since the container is checked:
@@ -821,7 +821,8 @@ static int vfio_device_first_open(struct vfio_device *device)
device->kvm = NULL;
if (device->group->container)
vfio_group_unuse_container(device->group);
- vfio_iommufd_unbind(device);
+ else if (device->group->iommufd)
+ vfio_iommufd_unbind(device);
err_module_put:
mutex_unlock(&device->group->group_lock);
module_put(device->dev->driver->owner);
@@ -840,7 +841,8 @@ static void vfio_device_last_close(struct vfio_device *device)
device->kvm = NULL;
if (device->group->container)
vfio_group_unuse_container(device->group);
- vfio_iommufd_unbind(device);
+ else if (device->group->iommufd)
+ vfio_iommufd_unbind(device);
mutex_unlock(&device->group->group_lock);
module_put(device->dev->driver->owner);
Thanks,
Jason
More information about the Intel-gfx
mailing list