Lines Matching defs:vfio_group

26 	struct vfio_group *vfio_group;
35 static struct vfio_group *kvm_vfio_group_get_external_user(struct file *filep)
37 struct vfio_group *vfio_group;
38 struct vfio_group *(*fn)(struct file *);
44 vfio_group = fn(filep);
48 return vfio_group;
51 static bool kvm_vfio_external_group_match_file(struct vfio_group *group,
54 bool ret, (*fn)(struct vfio_group *, struct file *);
67 static void kvm_vfio_group_put_external_user(struct vfio_group *vfio_group)
69 void (*fn)(struct vfio_group *);
75 fn(vfio_group);
80 static void kvm_vfio_group_set_kvm(struct vfio_group *group, struct kvm *kvm)
82 void (*fn)(struct vfio_group *, struct kvm *);
93 static bool kvm_vfio_group_is_coherent(struct vfio_group *vfio_group)
95 long (*fn)(struct vfio_group *, unsigned long);
102 ret = fn(vfio_group, VFIO_DMA_CC_IOMMU);
110 static int kvm_vfio_external_user_iommu_id(struct vfio_group *vfio_group)
112 int (*fn)(struct vfio_group *);
119 ret = fn(vfio_group);
127 struct vfio_group *group)
138 struct vfio_group *vfio_group)
140 struct iommu_group *grp = kvm_vfio_group_get_iommu_group(vfio_group);
166 if (!kvm_vfio_group_is_coherent(kvg->vfio_group)) {
187 struct vfio_group *vfio_group;
203 vfio_group = kvm_vfio_group_get_external_user(f.file);
206 if (IS_ERR(vfio_group))
207 return PTR_ERR(vfio_group);
212 if (kvg->vfio_group == vfio_group) {
214 kvm_vfio_group_put_external_user(vfio_group);
222 kvm_vfio_group_put_external_user(vfio_group);
227 kvg->vfio_group = vfio_group;
233 kvm_vfio_group_set_kvm(vfio_group, dev->kvm);
252 if (!kvm_vfio_external_group_match_file(kvg->vfio_group,
260 kvg->vfio_group);
262 kvm_vfio_group_set_kvm(kvg->vfio_group, NULL);
263 kvm_vfio_group_put_external_user(kvg->vfio_group);
281 struct vfio_group *vfio_group;
294 vfio_group = kvm_vfio_group_get_external_user(f.file);
297 if (IS_ERR(vfio_group))
298 return PTR_ERR(vfio_group);
300 grp = kvm_vfio_group_get_iommu_group(vfio_group);
302 kvm_vfio_group_put_external_user(vfio_group);
311 if (kvg->vfio_group != vfio_group)
322 kvm_vfio_group_put_external_user(vfio_group);
370 kvm_spapr_tce_release_vfio_group(dev->kvm, kvg->vfio_group);
372 kvm_vfio_group_set_kvm(kvg->vfio_group, NULL);
373 kvm_vfio_group_put_external_user(kvg->vfio_group);