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()
96 unsigned short order = p->order; in __hyp_attach_page() local
99 memset(hyp_page_to_virt(p), 0, PAGE_SIZE << p->order); in __hyp_attach_page()
102 * Only the first struct hyp_page of a high-order page (otherwise known in __hyp_attach_page()
103 * as the 'head') should have p->order set. The non-head pages should in __hyp_attach_page()
104 * have p->order = HYP_NO_ORDER. Here @p may no longer be the head in __hyp_attach_page()
107 p->order = HYP_NO_ORDER; in __hyp_attach_page()
108 for (; (order + 1) < pool->max_order; order++) { in __hyp_attach_page()
109 buddy = __find_buddy_avail(pool, p, order); in __hyp_attach_page()
115 buddy->order = HYP_NO_ORDER; in __hyp_attach_page()
120 p->order = order; in __hyp_attach_page()
121 page_add_to_list(p, &pool->free_area[order]); in __hyp_attach_page()
126 unsigned short order) in __hyp_extract_page() argument
131 while (p->order > order) { in __hyp_extract_page()
133 * The buddy of order n - 1 currently has HYP_NO_ORDER as it in __hyp_extract_page()
138 p->order--; in __hyp_extract_page()
139 buddy = __find_buddy_nocheck(pool, p, p->order); in __hyp_extract_page()
140 buddy->order = p->order; in __hyp_extract_page()
141 page_add_to_list(buddy, &pool->free_area[buddy->order]); in __hyp_extract_page()
199 unsigned short order = p->order; in hyp_split_page() local
202 p->order = 0; in hyp_split_page()
203 for (i = 1; i < (1 << order); i++) { in hyp_split_page()
206 tail->order = 0; in hyp_split_page()
211 void *hyp_alloc_pages(struct hyp_pool *pool, unsigned short order) in hyp_alloc_pages() argument
213 unsigned short i = order; in hyp_alloc_pages()
218 /* Look for a high-enough-order page */ in hyp_alloc_pages()
226 /* Extract it from the tree at the right order */ in hyp_alloc_pages()
228 p = __hyp_extract_page(pool, p, order); in hyp_alloc_pages()
253 p[i].order = 0; in hyp_pool_init()