On Wed, Mar 15, 2023 at 04:40:19AM +0000, Liu, Yi L wrote: > # if IS_ENABLED(CONFIG_VFIO_GROUP) > static inline bool vfio_device_is_noiommu(struct vfio_device *vdev) > { > return IS_ENABLED(CONFIG_VFIO_NOIOMMU) && > vdev->group->type == VFIO_NO_IOMMU; > } > #else > static inline bool vfio_device_is_noiommu(struct vfio_device *vdev) > { > struct iommu_group *iommu_group; > > if (!IS_ENABLED(CONFIG_VFIO_NOIOMMU) || !vfio_noiommu) > return -EINVAL; > > iommu_group = iommu_group_get(vdev->dev); > if (iommu_group) > iommu_group_put(iommu_group); > > return !iommu_group; If we don't have VFIO_GROUP then no-iommu is signaled by a NULL iommu_ctx pointer in the vdev, don't mess with groups Jason