Lines Matching refs:umem

327 	vq->umem = NULL;  in vhost_vq_reset()
425 dev->umem = NULL; in vhost_dev_init()
542 void vhost_dev_reset_owner(struct vhost_dev *dev, struct vhost_umem *umem) in vhost_dev_reset_owner() argument
549 INIT_LIST_HEAD(&umem->umem_list); in vhost_dev_reset_owner()
550 dev->umem = umem; in vhost_dev_reset_owner()
555 dev->vqs[i]->umem = umem; in vhost_dev_reset_owner()
572 static void vhost_umem_free(struct vhost_umem *umem, in vhost_umem_free() argument
575 vhost_umem_interval_tree_remove(node, &umem->umem_tree); in vhost_umem_free()
578 umem->numem--; in vhost_umem_free()
581 static void vhost_umem_clean(struct vhost_umem *umem) in vhost_umem_clean() argument
585 if (!umem) in vhost_umem_clean()
588 list_for_each_entry_safe(node, tmp, &umem->umem_list, link) in vhost_umem_clean()
589 vhost_umem_free(umem, node); in vhost_umem_clean()
591 kvfree(umem); in vhost_umem_clean()
631 vhost_umem_clean(dev->umem); in vhost_dev_cleanup()
632 dev->umem = NULL; in vhost_dev_cleanup()
668 static bool vq_memory_access_ok(void __user *log_base, struct vhost_umem *umem, in vq_memory_access_ok() argument
673 if (!umem) in vq_memory_access_ok()
676 list_for_each_entry(node, &umem->umem_list, link) { in vq_memory_access_ok()
708 static bool memory_access_ok(struct vhost_dev *d, struct vhost_umem *umem, in memory_access_ok() argument
722 umem, log); in memory_access_ok()
908 static int vhost_new_umem_range(struct vhost_umem *umem, in vhost_new_umem_range() argument
917 if (umem->numem == max_iotlb_entries) { in vhost_new_umem_range()
918 tmp = list_first_entry(&umem->umem_list, typeof(*tmp), link); in vhost_new_umem_range()
919 vhost_umem_free(umem, tmp); in vhost_new_umem_range()
928 list_add_tail(&node->link, &umem->umem_list); in vhost_new_umem_range()
929 vhost_umem_interval_tree_insert(node, &umem->umem_tree); in vhost_new_umem_range()
930 umem->numem++; in vhost_new_umem_range()
935 static void vhost_del_umem_range(struct vhost_umem *umem, in vhost_del_umem_range() argument
940 while ((node = vhost_umem_interval_tree_iter_first(&umem->umem_tree, in vhost_del_umem_range()
942 vhost_umem_free(umem, node); in vhost_del_umem_range()
1209 struct vhost_umem *umem = vq->iotlb; in iotlb_access_ok() local
1216 node = vhost_umem_interval_tree_iter_first(&umem->umem_tree, in iotlb_access_ok()
1266 return memory_access_ok(dev, dev->umem, 1); in vhost_log_access_ok()
1277 return vq_memory_access_ok(log_base, vq->umem, in vq_log_access_ok()
1301 struct vhost_umem *umem = kvzalloc(sizeof(*umem), GFP_KERNEL); in vhost_umem_alloc() local
1303 if (!umem) in vhost_umem_alloc()
1306 umem->umem_tree = RB_ROOT_CACHED; in vhost_umem_alloc()
1307 umem->numem = 0; in vhost_umem_alloc()
1308 INIT_LIST_HEAD(&umem->umem_list); in vhost_umem_alloc()
1310 return umem; in vhost_umem_alloc()
1361 oldumem = d->umem; in vhost_set_memory()
1362 d->umem = newumem; in vhost_set_memory()
1367 d->vqs[i]->umem = newumem; in vhost_set_memory()
1839 struct vhost_umem *umem = dev->iotlb ? dev->iotlb : dev->umem; in translate_desc() local
1851 node = vhost_umem_interval_tree_iter_first(&umem->umem_tree, in translate_desc()
1854 if (umem != dev->iotlb) { in translate_desc()