Lines Matching refs:p2pdma
45 struct pci_p2pdma *p2pdma; in size_show() local
49 p2pdma = rcu_dereference(pdev->p2pdma); in size_show()
50 if (p2pdma && p2pdma->pool) in size_show()
51 size = gen_pool_size(p2pdma->pool); in size_show()
62 struct pci_p2pdma *p2pdma; in available_show() local
66 p2pdma = rcu_dereference(pdev->p2pdma); in available_show()
67 if (p2pdma && p2pdma->pool) in available_show()
68 avail = gen_pool_avail(p2pdma->pool); in available_show()
79 struct pci_p2pdma *p2pdma; in published_show() local
83 p2pdma = rcu_dereference(pdev->p2pdma); in published_show()
84 if (p2pdma) in published_show()
85 published = p2pdma->p2pmem_published; in published_show()
97 struct pci_p2pdma *p2pdma; in p2pmem_alloc_mmap() local
119 p2pdma = rcu_dereference(pdev->p2pdma); in p2pmem_alloc_mmap()
120 if (!p2pdma) { in p2pmem_alloc_mmap()
125 kaddr = (void *)gen_pool_alloc_owner(p2pdma->pool, len, (void **)&ref); in p2pmem_alloc_mmap()
145 gen_pool_free(p2pdma->pool, (uintptr_t)kaddr, len); in p2pmem_alloc_mmap()
158 gen_pool_free(p2pdma->pool, (uintptr_t)kaddr, len); in p2pmem_alloc_mmap()
198 struct pci_p2pdma *p2pdma = in p2pdma_page_free() local
199 rcu_dereference_protected(pgmap->provider->p2pdma, 1); in p2pdma_page_free()
202 gen_pool_free_owner(p2pdma->pool, (uintptr_t)page_to_virt(page), in p2pdma_page_free()
214 struct pci_p2pdma *p2pdma; in pci_p2pdma_release() local
216 p2pdma = rcu_dereference_protected(pdev->p2pdma, 1); in pci_p2pdma_release()
217 if (!p2pdma) in pci_p2pdma_release()
221 pdev->p2pdma = NULL; in pci_p2pdma_release()
224 gen_pool_destroy(p2pdma->pool); in pci_p2pdma_release()
226 xa_destroy(&p2pdma->map_types); in pci_p2pdma_release()
252 rcu_assign_pointer(pdev->p2pdma, p2p); in pci_p2pdma_setup()
290 struct pci_p2pdma *p2pdma; in pci_p2pdma_add_resource() local
306 if (!pdev->p2pdma) { in pci_p2pdma_add_resource()
338 p2pdma = rcu_dereference_protected(pdev->p2pdma, 1); in pci_p2pdma_add_resource()
339 error = gen_pool_add_owner(p2pdma->pool, (unsigned long)addr, in pci_p2pdma_add_resource()
582 struct pci_p2pdma *p2pdma; in calc_map_type_and_dist() local
662 p2pdma = rcu_dereference(provider->p2pdma); in calc_map_type_and_dist()
663 if (p2pdma) in calc_map_type_and_dist()
664 xa_store(&p2pdma->map_types, map_types_idx(client), in calc_map_type_and_dist()
735 struct pci_p2pdma *p2pdma; in pci_has_p2pmem() local
739 p2pdma = rcu_dereference(pdev->p2pdma); in pci_has_p2pmem()
740 res = p2pdma && p2pdma->p2pmem_published; in pci_has_p2pmem()
823 struct pci_p2pdma *p2pdma; in pci_alloc_p2pmem() local
831 p2pdma = rcu_dereference(pdev->p2pdma); in pci_alloc_p2pmem()
832 if (unlikely(!p2pdma)) in pci_alloc_p2pmem()
835 ret = (void *)gen_pool_alloc_owner(p2pdma->pool, size, (void **) &ref); in pci_alloc_p2pmem()
840 gen_pool_free(p2pdma->pool, (unsigned long) ret, size); in pci_alloc_p2pmem()
859 struct pci_p2pdma *p2pdma = rcu_dereference_protected(pdev->p2pdma, 1); in pci_free_p2pmem() local
861 gen_pool_free_owner(p2pdma->pool, (uintptr_t)addr, size, in pci_free_p2pmem()
875 struct pci_p2pdma *p2pdma; in pci_p2pmem_virt_to_bus() local
880 p2pdma = rcu_dereference_protected(pdev->p2pdma, 1); in pci_p2pmem_virt_to_bus()
881 if (!p2pdma) in pci_p2pmem_virt_to_bus()
889 return gen_pool_virt_to_phys(p2pdma->pool, (unsigned long)addr); in pci_p2pmem_virt_to_bus()
960 struct pci_p2pdma *p2pdma; in pci_p2pmem_publish() local
963 p2pdma = rcu_dereference(pdev->p2pdma); in pci_p2pmem_publish()
964 if (p2pdma) in pci_p2pmem_publish()
965 p2pdma->p2pmem_published = publish; in pci_p2pmem_publish()
976 struct pci_p2pdma *p2pdma; in pci_p2pdma_map_type() local
979 if (!provider->p2pdma) in pci_p2pdma_map_type()
988 p2pdma = rcu_dereference(provider->p2pdma); in pci_p2pdma_map_type()
990 if (p2pdma) in pci_p2pdma_map_type()
991 type = xa_to_value(xa_load(&p2pdma->map_types, in pci_p2pdma_map_type()