Lines Matching refs:pages
1128 struct page **pages; in __iommu_alloc_buffer() local
1134 pages = kzalloc(array_size, GFP_KERNEL); in __iommu_alloc_buffer()
1136 pages = vzalloc(array_size); in __iommu_alloc_buffer()
1137 if (!pages) in __iommu_alloc_buffer()
1152 pages[i] = page + i; in __iommu_alloc_buffer()
1154 return pages; in __iommu_alloc_buffer()
1171 pages[i] = alloc_pages(gfp | __GFP_NORETRY, order); in __iommu_alloc_buffer()
1172 if (pages[i]) in __iommu_alloc_buffer()
1176 if (!pages[i]) { in __iommu_alloc_buffer()
1181 pages[i] = alloc_pages(gfp, 0); in __iommu_alloc_buffer()
1182 if (!pages[i]) in __iommu_alloc_buffer()
1187 split_page(pages[i], order); in __iommu_alloc_buffer()
1190 pages[i + j] = pages[i] + j; in __iommu_alloc_buffer()
1193 __dma_clear_buffer(pages[i], PAGE_SIZE << order); in __iommu_alloc_buffer()
1198 return pages; in __iommu_alloc_buffer()
1201 if (pages[i]) in __iommu_alloc_buffer()
1202 __free_pages(pages[i], 0); in __iommu_alloc_buffer()
1204 kfree(pages); in __iommu_alloc_buffer()
1206 vfree(pages); in __iommu_alloc_buffer()
1210 static int __iommu_free_buffer(struct device *dev, struct page **pages, in __iommu_free_buffer() argument
1218 dma_release_from_contiguous(dev, pages[0], count); in __iommu_free_buffer()
1221 if (pages[i]) in __iommu_free_buffer()
1222 __free_pages(pages[i], 0); in __iommu_free_buffer()
1226 kfree(pages); in __iommu_free_buffer()
1228 vfree(pages); in __iommu_free_buffer()
1236 __iommu_alloc_remap(struct page **pages, size_t size, gfp_t gfp, pgprot_t prot, in __iommu_alloc_remap() argument
1239 return dma_common_pages_remap(pages, size, in __iommu_alloc_remap()
1247 __iommu_create_mapping(struct device *dev, struct page **pages, size_t size) in __iommu_create_mapping() argument
1262 unsigned int next_pfn = page_to_pfn(pages[i]) + 1; in __iommu_create_mapping()
1263 phys_addr_t phys = page_to_phys(pages[i]); in __iommu_create_mapping()
1267 if (page_to_pfn(pages[j]) != next_pfn) in __iommu_create_mapping()
1324 return area->pages; in __iommu_get_pages()
1360 struct page **pages; in arm_iommu_alloc_attrs() local
1378 pages = __iommu_alloc_buffer(dev, size, gfp, attrs); in arm_iommu_alloc_attrs()
1379 if (!pages) in arm_iommu_alloc_attrs()
1382 *handle = __iommu_create_mapping(dev, pages, size); in arm_iommu_alloc_attrs()
1387 return pages; in arm_iommu_alloc_attrs()
1389 addr = __iommu_alloc_remap(pages, size, gfp, prot, in arm_iommu_alloc_attrs()
1399 __iommu_free_buffer(dev, pages, size, attrs); in arm_iommu_alloc_attrs()
1409 struct page **pages = __iommu_get_pages(cpu_addr, attrs); in arm_iommu_mmap_attrs() local
1415 if (!pages) in arm_iommu_mmap_attrs()
1421 pages += off; in arm_iommu_mmap_attrs()
1424 int ret = vm_insert_page(vma, uaddr, *pages++); in arm_iommu_mmap_attrs()
1443 struct page **pages; in arm_iommu_free_attrs() local
1451 pages = __iommu_get_pages(cpu_addr, attrs); in arm_iommu_free_attrs()
1452 if (!pages) { in arm_iommu_free_attrs()
1463 __iommu_free_buffer(dev, pages, size, attrs); in arm_iommu_free_attrs()
1471 struct page **pages = __iommu_get_pages(cpu_addr, attrs); in arm_iommu_get_sgtable() local
1473 if (!pages) in arm_iommu_get_sgtable()
1476 return sg_alloc_table_from_pages(sgt, pages, count, 0, size, in arm_iommu_get_sgtable()