Lines Matching +full:carry +full:- +full:less
1 // SPDX-License-Identifier: GPL-2.0
14 * get_vaddr_frames() - map virtual addresses to pfns
29 * The function returns number of pages mapped which may be less than
35 * to be able to do that, but that could (racily) return non-refcounted
49 if (WARN_ON_ONCE(nr_frames > vec->nr_allocated)) in get_vaddr_frames()
50 nr_frames = vec->nr_allocated; in get_vaddr_frames()
58 (struct page **)(vec->ptrs)); in get_vaddr_frames()
59 vec->got_ref = true; in get_vaddr_frames()
60 vec->is_pfns = false; in get_vaddr_frames()
61 vec->nr_frames = ret; in get_vaddr_frames()
66 vec->nr_frames = 0; in get_vaddr_frames()
67 return ret ? ret : -EFAULT; in get_vaddr_frames()
72 * put_vaddr_frames() - drop references to pages if get_vaddr_frames() acquired
84 if (!vec->got_ref) in put_vaddr_frames()
95 unpin_user_pages(pages, vec->nr_frames); in put_vaddr_frames()
96 vec->got_ref = false; in put_vaddr_frames()
98 vec->nr_frames = 0; in put_vaddr_frames()
103 * frame_vector_to_pages - convert frame vector to contain page pointers
116 if (!vec->is_pfns) in frame_vector_to_pages()
119 for (i = 0; i < vec->nr_frames; i++) in frame_vector_to_pages()
121 return -EINVAL; in frame_vector_to_pages()
123 for (i = 0; i < vec->nr_frames; i++) in frame_vector_to_pages()
125 vec->is_pfns = false; in frame_vector_to_pages()
131 * frame_vector_to_pfns - convert frame vector to contain pfns
142 if (vec->is_pfns) in frame_vector_to_pfns()
144 pages = (struct page **)(vec->ptrs); in frame_vector_to_pfns()
146 for (i = 0; i < vec->nr_frames; i++) in frame_vector_to_pfns()
148 vec->is_pfns = true; in frame_vector_to_pfns()
153 * frame_vector_create() - allocate & initialize structure for pinned pfns
179 vec->nr_allocated = nr_frames; in frame_vector_create()
180 vec->nr_frames = 0; in frame_vector_create()
186 * frame_vector_destroy() - free memory allocated to carry frame vector
189 * Free structure allocated by frame_vector_create() to carry frames.
194 VM_BUG_ON(vec->nr_frames > 0); in frame_vector_destroy()