> From: Liu, Yi L <yi.l.liu@xxxxxxxxx> > Sent: Wednesday, March 8, 2023 9:29 PM > > +/* > + * This shall be used without group lock as group and group->container > + * should be fixed before group is set to df->group. > + */ /* No group lock since df->group and df->group->container cannot change */ > +bool vfio_device_group_uses_container(struct vfio_device_file *df) > +{ > + /* > + * Use the df->group instead of the df->device->group as no > + * lock is acquired here. > + */ remove > > + /* > + * The handling here depends on what the user is using. > + * > + * If user uses iommufd in the group compat mode or the > + * cdev path, call vfio_iommufd_bind(). > + * > + * If user uses container in the group legacy mode, call > + * vfio_device_group_use_iommu(). this is what code does. > + * > + * If user doesn't use iommufd nor container, this is > + * the noiommufd mode in the cdev path, nothing needs > + * to be done here just go ahead to open device. > + */ > if (iommufd) > ret = vfio_iommufd_bind(device, iommufd); > - else > + else if (vfio_device_group_uses_container(df)) > ret = vfio_device_group_use_iommu(device); with earlier suggestion then iommufd=NULL always means noiommu in this function. Then the comment could be simple as: /* * if neither iommufd nor container is used the device is in * noiommu mode then just go ahead to open it. */