Lines Matching refs:nr_pages
18 static void *io_mem_alloc_compound(struct page **pages, int nr_pages, in io_mem_alloc_compound() argument
34 for (i = 0; i < nr_pages; i++) in io_mem_alloc_compound()
42 unsigned long start, end, nr_pages; in io_pin_pages() local
53 nr_pages = end - start; in io_pin_pages()
54 if (WARN_ON_ONCE(!nr_pages)) in io_pin_pages()
56 if (WARN_ON_ONCE(nr_pages > INT_MAX)) in io_pin_pages()
59 pages = kvmalloc_array(nr_pages, sizeof(struct page *), GFP_KERNEL); in io_pin_pages()
63 ret = pin_user_pages_fast(uaddr, nr_pages, FOLL_WRITE | FOLL_LONGTERM, in io_pin_pages()
66 if (ret == nr_pages) { in io_pin_pages()
67 *npages = nr_pages; in io_pin_pages()
94 long nr_refs = mr->nr_pages; in io_free_region()
108 if (mr->nr_pages && ctx->user) in io_free_region()
109 __io_unaccount_mem(ctx->user, mr->nr_pages); in io_free_region()
119 if (io_check_coalesce_buffer(mr->pages, mr->nr_pages, &ifd)) { in io_region_init_ptr()
125 ptr = vmap(mr->pages, mr->nr_pages, VM_MAP, PAGE_KERNEL); in io_region_init_ptr()
138 unsigned long size = (size_t) mr->nr_pages << PAGE_SHIFT; in io_region_pin_pages()
140 int nr_pages; in io_region_pin_pages() local
142 pages = io_pin_pages(reg->user_addr, size, &nr_pages); in io_region_pin_pages()
145 if (WARN_ON_ONCE(nr_pages != mr->nr_pages)) in io_region_pin_pages()
159 size_t size = (size_t) mr->nr_pages << PAGE_SHIFT; in io_region_allocate_pages()
164 pages = kvmalloc_array(mr->nr_pages, sizeof(*pages), gfp); in io_region_allocate_pages()
168 p = io_mem_alloc_compound(pages, mr->nr_pages, size, gfp); in io_region_allocate_pages()
175 mr->nr_pages, pages); in io_region_allocate_pages()
176 if (nr_allocated != mr->nr_pages) { in io_region_allocate_pages()
192 int nr_pages, ret; in io_create_region() local
195 if (WARN_ON_ONCE(mr->pages || mr->ptr || mr->nr_pages)) in io_create_region()
213 nr_pages = reg->size >> PAGE_SHIFT; in io_create_region()
215 ret = __io_account_mem(ctx->user, nr_pages); in io_create_region()
219 mr->nr_pages = nr_pages; in io_create_region()
315 unsigned long nr_pages = min(mr->nr_pages, max_pages); in io_region_mmap() local
318 return vm_insert_pages(vma, vma->vm_start, mr->pages, &nr_pages); in io_region_mmap()