Lines Matching refs:page

174 void homecache_finv_map_page(struct page *page, int home)  in homecache_finv_map_page()  argument
191 pte = pfn_pte(page_to_pfn(page), PAGE_KERNEL); in homecache_finv_map_page()
202 static void homecache_finv_page_home(struct page *page, int home) in homecache_finv_page_home() argument
204 if (!PageHighMem(page) && home == page_home(page)) in homecache_finv_page_home()
205 homecache_finv_page_va(page_address(page), home); in homecache_finv_page_home()
207 homecache_finv_map_page(page, home); in homecache_finv_page_home()
215 static void homecache_finv_page_internal(struct page *page, int force_map) in homecache_finv_page_internal() argument
217 int home = page_home(page); in homecache_finv_page_internal()
223 homecache_finv_map_page(page, cpu); in homecache_finv_page_internal()
226 homecache_finv_map_page(page, home); in homecache_finv_page_internal()
228 homecache_finv_page_home(page, home); in homecache_finv_page_internal()
230 sim_validate_lines_evicted(PFN_PHYS(page_to_pfn(page)), PAGE_SIZE); in homecache_finv_page_internal()
233 void homecache_finv_page(struct page *page) in homecache_finv_page() argument
235 homecache_finv_page_internal(page, 0); in homecache_finv_page()
351 int page_home(struct page *page) in page_home() argument
353 if (PageHighMem(page)) { in page_home()
356 unsigned long kva = (unsigned long)page_address(page); in page_home()
362 void homecache_change_page_home(struct page *page, int order, int home) in homecache_change_page_home() argument
367 BUG_ON(PageHighMem(page)); in homecache_change_page_home()
368 BUG_ON(page_count(page) > 1); in homecache_change_page_home()
369 BUG_ON(page_mapcount(page) != 0); in homecache_change_page_home()
370 kva = (unsigned long) page_address(page); in homecache_change_page_home()
384 struct page *homecache_alloc_pages(gfp_t gfp_mask, in homecache_alloc_pages()
387 struct page *page; in homecache_alloc_pages() local
389 page = alloc_pages(gfp_mask, order); in homecache_alloc_pages()
390 if (page) in homecache_alloc_pages()
391 homecache_change_page_home(page, order, home); in homecache_alloc_pages()
392 return page; in homecache_alloc_pages()
396 struct page *homecache_alloc_pages_node(int nid, gfp_t gfp_mask, in homecache_alloc_pages_node()
399 struct page *page; in homecache_alloc_pages_node() local
401 page = alloc_pages_node(nid, gfp_mask, order); in homecache_alloc_pages_node()
402 if (page) in homecache_alloc_pages_node()
403 homecache_change_page_home(page, order, home); in homecache_alloc_pages_node()
404 return page; in homecache_alloc_pages_node()
407 void __homecache_free_pages(struct page *page, unsigned int order) in __homecache_free_pages() argument
409 if (put_page_testzero(page)) { in __homecache_free_pages()
410 homecache_change_page_home(page, order, PAGE_HOME_HASH); in __homecache_free_pages()
412 free_hot_cold_page(page, false); in __homecache_free_pages()
414 init_page_count(page); in __homecache_free_pages()
415 __free_pages(page, order); in __homecache_free_pages()