• Home
  • Raw
  • Download

Lines Matching refs:p

34 					     struct hyp_page *p,  in __find_buddy_nocheck()  argument
37 phys_addr_t addr = hyp_page_to_phys(p); in __find_buddy_nocheck()
53 struct hyp_page *p, in __find_buddy_avail() argument
56 struct hyp_page *buddy = __find_buddy_nocheck(pool, p, order); in __find_buddy_avail()
66 struct hyp_page *p) in __hyp_attach_page() argument
68 unsigned int order = p->order; in __hyp_attach_page()
71 memset(hyp_page_to_virt(p), 0, PAGE_SIZE << p->order); in __hyp_attach_page()
79 p->order = HYP_NO_ORDER; in __hyp_attach_page()
81 buddy = __find_buddy_avail(pool, p, order); in __hyp_attach_page()
88 p = min(p, buddy); in __hyp_attach_page()
92 p->order = order; in __hyp_attach_page()
93 list_add_tail(&p->node, &pool->free_area[order]); in __hyp_attach_page()
96 static void hyp_attach_page(struct hyp_page *p) in hyp_attach_page() argument
98 struct hyp_pool *pool = hyp_page_to_pool(p); in hyp_attach_page()
101 __hyp_attach_page(pool, p); in hyp_attach_page()
106 struct hyp_page *p, in __hyp_extract_page() argument
111 list_del_init(&p->node); in __hyp_extract_page()
112 while (p->order > order) { in __hyp_extract_page()
119 p->order--; in __hyp_extract_page()
120 buddy = __find_buddy_nocheck(pool, p, p->order); in __hyp_extract_page()
121 buddy->order = p->order; in __hyp_extract_page()
125 return p; in __hyp_extract_page()
130 struct hyp_page *p = hyp_virt_to_page(addr); in hyp_put_page() local
132 if (hyp_page_ref_dec_and_test(p)) in hyp_put_page()
133 hyp_attach_page(p); in hyp_put_page()
138 struct hyp_page *p = hyp_virt_to_page(addr); in hyp_get_page() local
140 hyp_page_ref_inc(p); in hyp_get_page()
143 void hyp_split_page(struct hyp_page *p) in hyp_split_page() argument
145 unsigned short order = p->order; in hyp_split_page()
148 p->order = 0; in hyp_split_page()
150 struct hyp_page *tail = p + i; in hyp_split_page()
160 struct hyp_page *p; in hyp_alloc_pages() local
173 p = list_first_entry(&pool->free_area[i], struct hyp_page, node); in hyp_alloc_pages()
174 p = __hyp_extract_page(pool, p, order); in hyp_alloc_pages()
177 hyp_set_page_refcounted(p); in hyp_alloc_pages()
179 return hyp_page_to_virt(p); in hyp_alloc_pages()
186 struct hyp_page *p; in hyp_pool_init() local
197 p = hyp_phys_to_page(phys); in hyp_pool_init()
198 memset(p, 0, sizeof(*p) * nr_pages); in hyp_pool_init()
200 p[i].pool = pool; in hyp_pool_init()
201 INIT_LIST_HEAD(&p[i].node); in hyp_pool_init()
206 __hyp_attach_page(pool, &p[i]); in hyp_pool_init()