Re: [PATCH v5 15/19] vfio: Add cdev for vfio_device

Jason Gunthorpe
2023-02-27T19:06:14Z

On Mon, Feb 27, 2023 at 03:11:31AM -0800, Yi Liu wrote:
> @@ -309,6 +310,13 @@ void vfio_unregister_group_dev(struct vfio_device *device)
> bool interrupted = false;
> long rc;
>
> + /*
> + * Balances vfio_device_add in register path. Putting it as the
> + * first operation in unregister to prevent registration refcount
> + * from incrementing per cdev open.
> + */
> + vfio_device_del(device);
> +
> vfio_device_put_registration(device);
> rc = try_wait_for_completion(&device->comp);
> while (rc <= 0) {
> @@ -334,9 +342,6 @@ void vfio_unregister_group_dev(struct vfio_device *device)
>
> vfio_device_group_unregister(device);
>
> - /* Balances device_add in register path */
> - device_del(&device->device);
> -
> /* Balances vfio_device_set_group in register path */
> vfio_device_remove_group(device);

The same rational applies to vfio_device_group_unregister too, so it
should be moved up as well.

Jason