Lines Matching refs:pages
213 struct scif_range **pages) in scif_get_pages() argument
252 *pages = kzalloc(sizeof(**pages), GFP_KERNEL); in scif_get_pages()
253 if (!*pages) { in scif_get_pages()
259 (*pages)->phys_addr = scif_zalloc(nr_pages * sizeof(dma_addr_t)); in scif_get_pages()
260 if (!((*pages)->phys_addr)) { in scif_get_pages()
267 ((*pages)->va = scif_zalloc(nr_pages * sizeof(void *))); in scif_get_pages()
268 if (!(*pages)->va) { in scif_get_pages()
274 (*pages)->cookie = window; in scif_get_pages()
275 (*pages)->nr_pages = nr_pages; in scif_get_pages()
276 (*pages)->prot_flags = window->prot; in scif_get_pages()
279 (*pages)->phys_addr[i] = in scif_get_pages()
282 (*pages)->phys_addr[i] = scif_get_phys((*pages)->phys_addr[i], in scif_get_pages()
285 (*pages)->va[i] = in scif_get_pages()
287 (*pages)->phys_addr[i] - in scif_get_pages()
295 if (*pages) { in scif_get_pages()
296 scif_free((*pages)->phys_addr, in scif_get_pages()
298 scif_free((*pages)->va, in scif_get_pages()
300 kfree(*pages); in scif_get_pages()
301 *pages = NULL; in scif_get_pages()
310 int scif_put_pages(struct scif_range *pages) in scif_put_pages() argument
316 if (!pages || !pages->cookie) in scif_put_pages()
319 window = pages->cookie; in scif_put_pages()
336 scif_put_window(window, pages->nr_pages); in scif_put_pages()
356 scif_free(pages->phys_addr, pages->nr_pages * sizeof(dma_addr_t)); in scif_put_pages()
357 scif_free(pages->va, pages->nr_pages * sizeof(void *)); in scif_put_pages()
358 kfree(pages); in scif_put_pages()