Lines Matching refs:vfio_group
25 struct vfio_group *vfio_group; member
34 static struct vfio_group *kvm_vfio_group_get_external_user(struct file *filep) in kvm_vfio_group_get_external_user()
36 struct vfio_group *vfio_group; in kvm_vfio_group_get_external_user() local
37 struct vfio_group *(*fn)(struct file *); in kvm_vfio_group_get_external_user()
43 vfio_group = fn(filep); in kvm_vfio_group_get_external_user()
47 return vfio_group; in kvm_vfio_group_get_external_user()
50 static void kvm_vfio_group_put_external_user(struct vfio_group *vfio_group) in kvm_vfio_group_put_external_user() argument
52 void (*fn)(struct vfio_group *); in kvm_vfio_group_put_external_user()
58 fn(vfio_group); in kvm_vfio_group_put_external_user()
63 static bool kvm_vfio_group_is_coherent(struct vfio_group *vfio_group) in kvm_vfio_group_is_coherent() argument
65 long (*fn)(struct vfio_group *, unsigned long); in kvm_vfio_group_is_coherent()
72 ret = fn(vfio_group, VFIO_DMA_CC_IOMMU); in kvm_vfio_group_is_coherent()
95 if (!kvm_vfio_group_is_coherent(kvg->vfio_group)) { in kvm_vfio_update_coherency()
116 struct vfio_group *vfio_group; in kvm_vfio_set_group() local
132 vfio_group = kvm_vfio_group_get_external_user(f.file); in kvm_vfio_set_group()
135 if (IS_ERR(vfio_group)) in kvm_vfio_set_group()
136 return PTR_ERR(vfio_group); in kvm_vfio_set_group()
141 if (kvg->vfio_group == vfio_group) { in kvm_vfio_set_group()
143 kvm_vfio_group_put_external_user(vfio_group); in kvm_vfio_set_group()
151 kvm_vfio_group_put_external_user(vfio_group); in kvm_vfio_set_group()
156 kvg->vfio_group = vfio_group; in kvm_vfio_set_group()
172 vfio_group = kvm_vfio_group_get_external_user(f.file); in kvm_vfio_set_group()
175 if (IS_ERR(vfio_group)) in kvm_vfio_set_group()
176 return PTR_ERR(vfio_group); in kvm_vfio_set_group()
183 if (kvg->vfio_group != vfio_group) in kvm_vfio_set_group()
187 kvm_vfio_group_put_external_user(kvg->vfio_group); in kvm_vfio_set_group()
195 kvm_vfio_group_put_external_user(vfio_group); in kvm_vfio_set_group()
239 kvm_vfio_group_put_external_user(kvg->vfio_group); in kvm_vfio_destroy()