Lines Matching full:order
25 * Order 2 1 0
28 * __find_buddy_nocheck(pool, page 0, order 0) => page 1
29 * __find_buddy_nocheck(pool, page 0, order 1) => page 2
30 * __find_buddy_nocheck(pool, page 1, order 0) => page 0
31 * __find_buddy_nocheck(pool, page 2, order 0) => page 3
35 unsigned short order) in __find_buddy_nocheck() argument
39 addr ^= (PAGE_SIZE << order); in __find_buddy_nocheck()
54 unsigned short order) in __find_buddy_avail() argument
56 struct hyp_page *buddy = __find_buddy_nocheck(pool, p, order); in __find_buddy_avail()
58 if (!buddy || buddy->order != order || buddy->refcount) in __find_buddy_avail()
97 unsigned short order = p->order; in __hyp_attach_page() local
100 memset(hyp_page_to_virt(p), 0, PAGE_SIZE << p->order); in __hyp_attach_page()
107 * Only the first struct hyp_page of a high-order page (otherwise known in __hyp_attach_page()
108 * as the 'head') should have p->order set. The non-head pages should in __hyp_attach_page()
109 * have p->order = HYP_NO_ORDER. Here @p may no longer be the head in __hyp_attach_page()
112 p->order = HYP_NO_ORDER; in __hyp_attach_page()
113 for (; (order + 1) <= pool->max_order; order++) { in __hyp_attach_page()
114 buddy = __find_buddy_avail(pool, p, order); in __hyp_attach_page()
120 buddy->order = HYP_NO_ORDER; in __hyp_attach_page()
126 p->order = order; in __hyp_attach_page()
127 page_add_to_list(p, &pool->free_area[order]); in __hyp_attach_page()
132 unsigned short order) in __hyp_extract_page() argument
137 while (p->order > order) { in __hyp_extract_page()
139 * The buddy of order n - 1 currently has HYP_NO_ORDER as it in __hyp_extract_page()
144 p->order--; in __hyp_extract_page()
145 buddy = __find_buddy_nocheck(pool, p, p->order); in __hyp_extract_page()
146 buddy->order = p->order; in __hyp_extract_page()
147 page_add_to_list(buddy, &pool->free_area[buddy->order]); in __hyp_extract_page()
186 unsigned short order = p->order; in hyp_split_page() local
189 p->order = 0; in hyp_split_page()
190 for (i = 1; i < (1 << order); i++) { in hyp_split_page()
193 tail->order = 0; in hyp_split_page()
198 void *hyp_alloc_pages(struct hyp_pool *pool, unsigned short order) in hyp_alloc_pages() argument
200 unsigned short i = order; in hyp_alloc_pages()
205 /* Look for a high-enough-order page */ in hyp_alloc_pages()
213 /* Extract it from the tree at the right order */ in hyp_alloc_pages()
215 p = __hyp_extract_page(pool, p, order); in hyp_alloc_pages()