Lines Matching refs:nr_pages
17 static void *io_mem_alloc_compound(struct page **pages, int nr_pages,
33 for (i = 0; i < nr_pages; i++)
41 unsigned long start, end, nr_pages;
52 nr_pages = end - start;
53 if (WARN_ON_ONCE(!nr_pages))
55 if (WARN_ON_ONCE(nr_pages > INT_MAX))
58 pages = kvmalloc_array(nr_pages, sizeof(struct page *), GFP_KERNEL);
62 ret = pin_user_pages_fast(uaddr, nr_pages, FOLL_WRITE | FOLL_LONGTERM,
65 if (ret == nr_pages) {
66 *npages = nr_pages;
93 long nr_refs = mr->nr_pages;
107 if (mr->nr_pages && ctx->user)
108 __io_unaccount_mem(ctx->user, mr->nr_pages);
118 if (io_check_coalesce_buffer(mr->pages, mr->nr_pages, &ifd)) {
124 ptr = vmap(mr->pages, mr->nr_pages, VM_MAP, PAGE_KERNEL);
137 unsigned long size = mr->nr_pages << PAGE_SHIFT;
139 int nr_pages;
141 pages = io_pin_pages(reg->user_addr, size, &nr_pages);
144 if (WARN_ON_ONCE(nr_pages != mr->nr_pages))
158 unsigned long size = mr->nr_pages << PAGE_SHIFT;
163 pages = kvmalloc_array(mr->nr_pages, sizeof(*pages), gfp);
167 p = io_mem_alloc_compound(pages, mr->nr_pages, size, gfp);
174 mr->nr_pages, pages);
175 if (nr_allocated != mr->nr_pages) {
191 int nr_pages, ret;
194 if (WARN_ON_ONCE(mr->pages || mr->ptr || mr->nr_pages))
212 nr_pages = reg->size >> PAGE_SHIFT;
214 ret = __io_account_mem(ctx->user, nr_pages);
218 mr->nr_pages = nr_pages;
310 unsigned long nr_pages = min(mr->nr_pages, max_pages);
313 return vm_insert_pages(vma, vma->vm_start, mr->pages, &nr_pages);