Message ID | 20230711025928.6438-18-yi.l.liu@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add vfio_device cdev for iommufd support | expand |
On Mon, Jul 10, 2023 at 07:59:19PM -0700, Yi Liu wrote: > device_del() destroys the vfio-dev/vfioX under the sysfs for vfio_device. > There is no reason to keep it while the device is going to be unregistered. > > This movement is also a preparation for adding vfio_device cdev. Kernel > should remove the cdev node of the vfio_device to avoid new registration > refcount increment while the device is going to be unregistered. > > Signed-off-by: Yi Liu <yi.l.liu@intel.com> > --- > drivers/vfio/vfio_main.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) Reviewed-by: Jason Gunthorpe <jgg@nvidia.com> Jason
diff --git a/drivers/vfio/vfio_main.c b/drivers/vfio/vfio_main.c index 6d45caa1f9a0..294bb5ecfc1c 100644 --- a/drivers/vfio/vfio_main.c +++ b/drivers/vfio/vfio_main.c @@ -338,6 +338,9 @@ void vfio_unregister_group_dev(struct vfio_device *device) */ vfio_device_group_unregister(device); + /* Balances device_add in register path */ + device_del(&device->device); + vfio_device_put_registration(device); rc = try_wait_for_completion(&device->comp); while (rc <= 0) { @@ -361,9 +364,6 @@ void vfio_unregister_group_dev(struct vfio_device *device) } } - /* Balances device_add in register path */ - device_del(&device->device); - /* Balances vfio_device_set_group in register path */ vfio_device_remove_group(device); }
device_del() destroys the vfio-dev/vfioX under the sysfs for vfio_device. There is no reason to keep it while the device is going to be unregistered. This movement is also a preparation for adding vfio_device cdev. Kernel should remove the cdev node of the vfio_device to avoid new registration refcount increment while the device is going to be unregistered. Signed-off-by: Yi Liu <yi.l.liu@intel.com> --- drivers/vfio/vfio_main.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)