Lines Matching refs:page

88 static inline void hibernate_map_page(struct page *page)  in hibernate_map_page()  argument
91 int ret = set_direct_map_default_noflush(page); in hibernate_map_page()
96 debug_pagealloc_map_pages(page, 1); in hibernate_map_page()
100 static inline void hibernate_unmap_page(struct page *page) in hibernate_unmap_page() argument
103 unsigned long addr = (unsigned long)page_address(page); in hibernate_unmap_page()
104 int ret = set_direct_map_invalid_noflush(page); in hibernate_unmap_page()
111 debug_pagealloc_unmap_pages(page, 1); in hibernate_unmap_page()
115 static int swsusp_page_is_free(struct page *);
116 static void swsusp_set_page_forbidden(struct page *);
117 static void swsusp_unset_page_forbidden(struct page *);
227 static struct page *alloc_image_page(gfp_t gfp_mask) in alloc_image_page()
229 struct page *page; in alloc_image_page() local
231 page = alloc_page(gfp_mask); in alloc_image_page()
232 if (page) { in alloc_image_page()
233 swsusp_set_page_forbidden(page); in alloc_image_page()
234 swsusp_set_page_free(page); in alloc_image_page()
236 return page; in alloc_image_page()
257 struct page *page; in free_image_page() local
261 page = virt_to_page(addr); in free_image_page()
263 swsusp_unset_page_forbidden(page); in free_image_page()
265 swsusp_unset_page_free(page); in free_image_page()
267 __free_page(page); in free_image_page()
1039 void swsusp_set_page_free(struct page *page) in swsusp_set_page_free() argument
1042 memory_bm_set_bit(free_pages_map, page_to_pfn(page)); in swsusp_set_page_free()
1045 static int swsusp_page_is_free(struct page *page) in swsusp_page_is_free() argument
1048 memory_bm_test_bit(free_pages_map, page_to_pfn(page)) : 0; in swsusp_page_is_free()
1051 void swsusp_unset_page_free(struct page *page) in swsusp_unset_page_free() argument
1054 memory_bm_clear_bit(free_pages_map, page_to_pfn(page)); in swsusp_unset_page_free()
1057 static void swsusp_set_page_forbidden(struct page *page) in swsusp_set_page_forbidden() argument
1060 memory_bm_set_bit(forbidden_pages_map, page_to_pfn(page)); in swsusp_set_page_forbidden()
1063 int swsusp_page_is_forbidden(struct page *page) in swsusp_page_is_forbidden() argument
1066 memory_bm_test_bit(forbidden_pages_map, page_to_pfn(page)) : 0; in swsusp_page_is_forbidden()
1069 static void swsusp_unset_page_forbidden(struct page *page) in swsusp_unset_page_forbidden() argument
1072 memory_bm_clear_bit(forbidden_pages_map, page_to_pfn(page)); in swsusp_unset_page_forbidden()
1186 static void clear_or_poison_free_page(struct page *page) in clear_or_poison_free_page() argument
1189 __kernel_poison_pages(page, 1); in clear_or_poison_free_page()
1191 clear_highpage(page); in clear_or_poison_free_page()
1249 struct page *page; in mark_free_pages() local
1258 page = pfn_to_page(pfn); in mark_free_pages()
1265 if (page_zone(page) != zone) in mark_free_pages()
1268 if (!swsusp_page_is_forbidden(page)) in mark_free_pages()
1269 swsusp_unset_page_free(page); in mark_free_pages()
1273 list_for_each_entry(page, in mark_free_pages()
1277 pfn = page_to_pfn(page); in mark_free_pages()
1316 static struct page *saveable_highmem_page(struct zone *zone, unsigned long pfn) in saveable_highmem_page()
1318 struct page *page; in saveable_highmem_page() local
1323 page = pfn_to_online_page(pfn); in saveable_highmem_page()
1324 if (!page || page_zone(page) != zone) in saveable_highmem_page()
1327 BUG_ON(!PageHighMem(page)); in saveable_highmem_page()
1329 if (swsusp_page_is_forbidden(page) || swsusp_page_is_free(page)) in saveable_highmem_page()
1332 if (PageReserved(page) || PageOffline(page)) in saveable_highmem_page()
1335 if (page_is_guard(page)) in saveable_highmem_page()
1338 return page; in saveable_highmem_page()
1375 static struct page *saveable_page(struct zone *zone, unsigned long pfn) in saveable_page()
1377 struct page *page; in saveable_page() local
1382 page = pfn_to_online_page(pfn); in saveable_page()
1383 if (!page || page_zone(page) != zone) in saveable_page()
1386 BUG_ON(PageHighMem(page)); in saveable_page()
1388 if (swsusp_page_is_forbidden(page) || swsusp_page_is_free(page)) in saveable_page()
1391 if (PageOffline(page)) in saveable_page()
1394 if (PageReserved(page) in saveable_page()
1395 && (!kernel_page_present(page) || pfn_is_nosave(pfn))) in saveable_page()
1398 if (page_is_guard(page)) in saveable_page()
1401 return page; in saveable_page()
1452 static bool safe_copy_page(void *dst, struct page *s_page) in safe_copy_page()
1467 static inline struct page *page_is_saveable(struct zone *zone, unsigned long pfn) in page_is_saveable()
1475 struct page *s_page, *d_page; in copy_data_page()
1616 struct page *page = pfn_to_page(fr_pfn); in swsusp_free() local
1620 hibernate_restore_unprotect_page(page_address(page)); in swsusp_free()
1621 __free_page(page); in swsusp_free()
1652 struct page *page; in preallocate_image_pages() local
1654 page = alloc_image_page(mask); in preallocate_image_pages()
1655 if (!page) in preallocate_image_pages()
1657 memory_bm_set_bit(&copy_bm, page_to_pfn(page)); in preallocate_image_pages()
1658 if (PageHighMem(page)) in preallocate_image_pages()
1752 struct page *page = pfn_to_page(pfn); in free_unnecessary_pages() local
1754 if (PageHighMem(page)) { in free_unnecessary_pages()
1766 swsusp_unset_page_forbidden(page); in free_unnecessary_pages()
1767 swsusp_unset_page_free(page); in free_unnecessary_pages()
1768 __free_page(page); in free_unnecessary_pages()
2054 struct page *page; in alloc_highmem_pages() local
2056 page = alloc_image_page(__GFP_HIGHMEM|__GFP_KSWAPD_RECLAIM); in alloc_highmem_pages()
2057 memory_bm_set_bit(bm, page_to_pfn(page)); in alloc_highmem_pages()
2093 struct page *page; in swsusp_alloc() local
2095 page = alloc_image_page(GFP_ATOMIC); in swsusp_alloc()
2096 if (!page) in swsusp_alloc()
2098 memory_bm_set_bit(copy_bm, page_to_pfn(page)); in swsusp_alloc()
2260 struct page *page; in snapshot_read_next() local
2262 page = pfn_to_page(memory_bm_next_pfn(&copy_bm)); in snapshot_read_next()
2263 if (PageHighMem(page)) { in snapshot_read_next()
2271 kaddr = kmap_local_page(page); in snapshot_read_next()
2276 handle->buffer = page_address(page); in snapshot_read_next()
2397 struct page *copy_page; /* data is here now */
2398 struct page *orig_page; /* data was here before the suspend */
2468 struct page *page; in prepare_highmem_image() local
2470 page = alloc_page(__GFP_HIGHMEM); in prepare_highmem_image()
2471 if (!swsusp_page_is_free(page)) { in prepare_highmem_image()
2473 memory_bm_set_bit(bm, page_to_pfn(page)); in prepare_highmem_image()
2477 swsusp_set_page_forbidden(page); in prepare_highmem_image()
2478 swsusp_set_page_free(page); in prepare_highmem_image()
2485 static struct page *last_highmem_page;
2505 static void *get_highmem_page_buffer(struct page *page, in get_highmem_page_buffer() argument
2511 if (swsusp_page_is_forbidden(page) && swsusp_page_is_free(page)) { in get_highmem_page_buffer()
2516 last_highmem_page = page; in get_highmem_page_buffer()
2528 pbe->orig_page = page; in get_highmem_page_buffer()
2530 struct page *tmp; in get_highmem_page_buffer()
2588 static inline void *get_highmem_page_buffer(struct page *page, in get_highmem_page_buffer() argument
2719 struct page *page; in get_buffer() local
2725 page = pfn_to_page(pfn); in get_buffer()
2726 if (PageHighMem(page)) in get_buffer()
2727 return get_highmem_page_buffer(page, ca); in get_buffer()
2729 if (swsusp_page_is_forbidden(page) && swsusp_page_is_free(page)) in get_buffer()
2734 return page_address(page); in get_buffer()
2745 pbe->orig_address = page_address(page); in get_buffer()
2877 static inline void swap_two_pages_data(struct page *p1, struct page *p2, in swap_two_pages_data()