Lines Matching refs:df
167 static int vfio_df_group_open(struct vfio_device_file *df) in vfio_df_group_open() argument
169 struct vfio_device *device = df->device; in vfio_df_group_open()
189 df->iommufd = device->group->iommufd; in vfio_df_group_open()
190 if (df->iommufd && vfio_device_is_noiommu(device) && device->open_count == 0) { in vfio_df_group_open()
197 vfio_iommufd_device_has_compat_ioas(device, df->iommufd)) in vfio_df_group_open()
204 ret = vfio_df_open(df); in vfio_df_group_open()
208 if (df->iommufd && device->open_count == 1) { in vfio_df_group_open()
209 ret = vfio_iommufd_compat_attach_ioas(device, df->iommufd); in vfio_df_group_open()
218 smp_store_release(&df->access_granted, true); in vfio_df_group_open()
225 vfio_df_close(df); in vfio_df_group_open()
227 df->iommufd = NULL; in vfio_df_group_open()
236 void vfio_df_group_close(struct vfio_device_file *df) in vfio_df_group_close() argument
238 struct vfio_device *device = df->device; in vfio_df_group_close()
243 vfio_df_close(df); in vfio_df_group_close()
244 df->iommufd = NULL; in vfio_df_group_close()
255 struct vfio_device_file *df; in vfio_device_open_file() local
259 df = vfio_allocate_device_file(device); in vfio_device_open_file()
260 if (IS_ERR(df)) { in vfio_device_open_file()
261 ret = PTR_ERR(df); in vfio_device_open_file()
265 df->group = device->group; in vfio_device_open_file()
267 ret = vfio_df_group_open(df); in vfio_device_open_file()
276 df, O_RDWR); in vfio_device_open_file()
299 vfio_df_group_close(df); in vfio_device_open_file()
301 kfree(df); in vfio_device_open_file()