Lines Matching full:kvg

101 					     struct kvm_vfio_group *kvg)  in kvm_spapr_tce_release_vfio_group()  argument
103 if (WARN_ON_ONCE(!kvg->iommu_group)) in kvm_spapr_tce_release_vfio_group()
106 kvm_spapr_tce_release_iommu_group(kvm, kvg->iommu_group); in kvm_spapr_tce_release_vfio_group()
107 iommu_group_put(kvg->iommu_group); in kvm_spapr_tce_release_vfio_group()
108 kvg->iommu_group = NULL; in kvm_spapr_tce_release_vfio_group()
123 struct kvm_vfio_group *kvg; in kvm_vfio_update_coherency() local
127 list_for_each_entry(kvg, &kv->group_list, node) { in kvm_vfio_update_coherency()
128 if (!kvm_vfio_file_enforced_coherent(kvg->file)) { in kvm_vfio_update_coherency()
149 struct kvm_vfio_group *kvg; in kvm_vfio_group_add() local
165 list_for_each_entry(kvg, &kv->group_list, node) { in kvm_vfio_group_add()
166 if (kvg->file == filp) { in kvm_vfio_group_add()
172 kvg = kzalloc(sizeof(*kvg), GFP_KERNEL_ACCOUNT); in kvm_vfio_group_add()
173 if (!kvg) { in kvm_vfio_group_add()
178 kvg->file = filp; in kvm_vfio_group_add()
179 list_add_tail(&kvg->node, &kv->group_list); in kvm_vfio_group_add()
185 kvm_vfio_file_set_kvm(kvg->file, dev->kvm); in kvm_vfio_group_add()
199 struct kvm_vfio_group *kvg; in kvm_vfio_group_del() local
211 list_for_each_entry(kvg, &kv->group_list, node) { in kvm_vfio_group_del()
212 if (kvg->file != f.file) in kvm_vfio_group_del()
215 list_del(&kvg->node); in kvm_vfio_group_del()
218 kvm_spapr_tce_release_vfio_group(dev->kvm, kvg); in kvm_vfio_group_del()
220 kvm_vfio_file_set_kvm(kvg->file, NULL); in kvm_vfio_group_del()
221 fput(kvg->file); in kvm_vfio_group_del()
222 kfree(kvg); in kvm_vfio_group_del()
242 struct kvm_vfio_group *kvg; in kvm_vfio_group_set_spapr_tce() local
257 list_for_each_entry(kvg, &kv->group_list, node) { in kvm_vfio_group_set_spapr_tce()
258 if (kvg->file != f.file) in kvm_vfio_group_set_spapr_tce()
261 if (!kvg->iommu_group) { in kvm_vfio_group_set_spapr_tce()
262 kvg->iommu_group = kvm_vfio_file_iommu_group(kvg->file); in kvm_vfio_group_set_spapr_tce()
263 if (WARN_ON_ONCE(!kvg->iommu_group)) { in kvm_vfio_group_set_spapr_tce()
270 kvg->iommu_group); in kvm_vfio_group_set_spapr_tce()
342 struct kvm_vfio_group *kvg, *tmp; in kvm_vfio_destroy() local
344 list_for_each_entry_safe(kvg, tmp, &kv->group_list, node) { in kvm_vfio_destroy()
346 kvm_spapr_tce_release_vfio_group(dev->kvm, kvg); in kvm_vfio_destroy()
348 kvm_vfio_file_set_kvm(kvg->file, NULL); in kvm_vfio_destroy()
349 fput(kvg->file); in kvm_vfio_destroy()
350 list_del(&kvg->node); in kvm_vfio_destroy()
351 kfree(kvg); in kvm_vfio_destroy()