Lines Matching refs:nr_pages
90 scif_create_pinned_pages(int nr_pages, int prot) in scif_create_pinned_pages() argument
99 pin->pages = scif_zalloc(nr_pages * sizeof(*pin->pages)); in scif_create_pinned_pages()
125 for (j = 0; j < pin->nr_pages; j++) { in scif_destroy_pinned_pages()
134 pin->nr_pages * sizeof(*pin->pages)); in scif_destroy_pinned_pages()
148 struct scif_window *scif_create_window(struct scif_endpt *ep, int nr_pages, in scif_create_window() argument
158 window->dma_addr = scif_zalloc(nr_pages * sizeof(*window->dma_addr)); in scif_create_window()
162 window->num_pages = scif_zalloc(nr_pages * sizeof(*window->num_pages)); in scif_create_window()
180 nr_pages * sizeof(*window->dma_addr)); in scif_create_window()
197 int nr_pages = window->nr_pages; in scif_destroy_incomplete_window() local
222 scif_free(window->dma_addr, nr_pages * sizeof(*window->dma_addr)); in scif_destroy_incomplete_window()
223 scif_free(window->num_pages, nr_pages * sizeof(*window->num_pages)); in scif_destroy_incomplete_window()
275 int nr_pages, bool try_lock) in __scif_dec_pinned_vm_lock() argument
277 if (!mm || !nr_pages || !scif_ulimit_check) in __scif_dec_pinned_vm_lock()
288 mm->pinned_vm -= nr_pages; in __scif_dec_pinned_vm_lock()
294 int nr_pages) in __scif_check_inc_pinned_vm() argument
298 if (!mm || !nr_pages || !scif_ulimit_check) in __scif_check_inc_pinned_vm()
301 locked = nr_pages; in __scif_check_inc_pinned_vm()
325 int nr_pages = window->nr_pages; in scif_destroy_window() local
329 __scif_dec_pinned_vm_lock(window->mm, window->nr_pages, 0); in scif_destroy_window()
352 scif_free(window->dma_addr, nr_pages * sizeof(*window->dma_addr)); in scif_destroy_window()
353 scif_free(window->num_pages, nr_pages * sizeof(*window->num_pages)); in scif_destroy_window()
372 int nr_pages = window->nr_pages; in scif_create_remote_lookup() local
383 window->nr_lookup = ALIGN(nr_pages * PAGE_SIZE, in scif_create_remote_lookup()
410 for (i = 0, j = 0; i < nr_pages; i += SCIF_NR_ADDR_IN_PAGE, j++) { in scif_create_remote_lookup()
448 for (i = 0, j = 0; i < window->nr_pages; in scif_destroy_remote_lookup()
482 scif_create_remote_window(struct scif_dev *scifdev, int nr_pages) in scif_create_remote_window() argument
492 window->nr_pages = nr_pages; in scif_create_remote_window()
494 window->dma_addr = scif_zalloc(nr_pages * sizeof(*window->dma_addr)); in scif_create_remote_window()
498 window->num_pages = scif_zalloc(nr_pages * in scif_create_remote_window()
526 scif_free(window->dma_addr, window->nr_pages * in scif_destroy_remote_window()
528 scif_free(window->num_pages, window->nr_pages * in scif_destroy_remote_window()
553 err = sg_alloc_table(window->st, window->nr_pages, GFP_KERNEL); in scif_iommu_map()
605 for (i = 0, j = 0; i < window->nr_pages; i += nr_contig_pages, j++) { in scif_map_window()
610 for (k = i + 1; k < window->nr_pages; k++) { in scif_map_window()
727 scif_put_window(window, window->nr_pages); in scif_unregister_window()
740 window->nr_pages, 1)) { in scif_unregister_window()
770 msg.payload[1] = window->nr_pages; in scif_send_alloc_request()
1063 int nr_pages = msg->payload[1]; in scif_alloc_req() local
1065 window = scif_create_remote_window(scifdev, nr_pages); in scif_alloc_req()
1083 __func__, __LINE__, err, window, nr_pages); in scif_alloc_req()
1205 req.nr_bytes = recv_window->nr_pages << PAGE_SHIFT; in scif_recv_unreg()
1220 scif_put_window(window, window->nr_pages); in scif_recv_unreg()
1329 int nr_pages, err = 0, i; in __scif_pin_pages() local
1353 nr_pages = len >> PAGE_SHIFT; in __scif_pin_pages()
1356 pinned_pages = scif_create_pinned_pages(nr_pages, prot); in __scif_pin_pages()
1364 for (i = 0; i < nr_pages; i++) { in __scif_pin_pages()
1372 pinned_pages->nr_pages = nr_pages; in __scif_pin_pages()
1390 err = __scif_check_inc_pinned_vm(mm, nr_pages); in __scif_pin_pages()
1393 pinned_pages->nr_pages = 0; in __scif_pin_pages()
1398 pinned_pages->nr_pages = get_user_pages( in __scif_pin_pages()
1400 nr_pages, in __scif_pin_pages()
1405 if (nr_pages != pinned_pages->nr_pages) { in __scif_pin_pages()
1409 nr_pages, 0); in __scif_pin_pages()
1411 for (i = 0; i < pinned_pages->nr_pages; i++) { in __scif_pin_pages()
1424 if (pinned_pages->nr_pages < nr_pages) { in __scif_pin_pages()
1426 pinned_pages->nr_pages = nr_pages; in __scif_pin_pages()
1436 __scif_dec_pinned_vm_lock(mm, nr_pages, 0); in __scif_pin_pages()
1439 pinned_pages->nr_pages = nr_pages; in __scif_pin_pages()
1504 len = pinned_pages->nr_pages << PAGE_SHIFT; in scif_register_pinned_pages()
1537 window = scif_create_window(ep, pinned_pages->nr_pages, in scif_register_pinned_pages()
1546 window->nr_pages = pinned_pages->nr_pages; in scif_register_pinned_pages()
1655 window->nr_pages = len >> PAGE_SHIFT; in scif_register()
1721 int nr_pages, err; in scif_unregister() local
1743 nr_pages = len >> PAGE_SHIFT; in scif_unregister()
1766 err = scif_rma_list_unregister(window, offset, nr_pages); in scif_unregister()