Lines Matching refs:page
41 static int swsusp_page_is_free(struct page *);
42 static void swsusp_set_page_forbidden(struct page *);
43 static void swsusp_unset_page_forbidden(struct page *);
121 static struct page *alloc_image_page(gfp_t gfp_mask) in alloc_image_page()
123 struct page *page; in alloc_image_page() local
125 page = alloc_page(gfp_mask); in alloc_image_page()
126 if (page) { in alloc_image_page()
127 swsusp_set_page_forbidden(page); in alloc_image_page()
128 swsusp_set_page_free(page); in alloc_image_page()
130 return page; in alloc_image_page()
140 struct page *page; in free_image_page() local
144 page = virt_to_page(addr); in free_image_page()
146 swsusp_unset_page_forbidden(page); in free_image_page()
148 swsusp_unset_page_free(page); in free_image_page()
150 __free_page(page); in free_image_page()
889 void swsusp_set_page_free(struct page *page) in swsusp_set_page_free() argument
892 memory_bm_set_bit(free_pages_map, page_to_pfn(page)); in swsusp_set_page_free()
895 static int swsusp_page_is_free(struct page *page) in swsusp_page_is_free() argument
898 memory_bm_test_bit(free_pages_map, page_to_pfn(page)) : 0; in swsusp_page_is_free()
901 void swsusp_unset_page_free(struct page *page) in swsusp_unset_page_free() argument
904 memory_bm_clear_bit(free_pages_map, page_to_pfn(page)); in swsusp_unset_page_free()
907 static void swsusp_set_page_forbidden(struct page *page) in swsusp_set_page_forbidden() argument
910 memory_bm_set_bit(forbidden_pages_map, page_to_pfn(page)); in swsusp_set_page_forbidden()
913 int swsusp_page_is_forbidden(struct page *page) in swsusp_page_is_forbidden() argument
916 memory_bm_test_bit(forbidden_pages_map, page_to_pfn(page)) : 0; in swsusp_page_is_forbidden()
919 static void swsusp_unset_page_forbidden(struct page *page) in swsusp_unset_page_forbidden() argument
922 memory_bm_clear_bit(forbidden_pages_map, page_to_pfn(page)); in swsusp_unset_page_forbidden()
1081 static struct page *saveable_highmem_page(struct zone *zone, unsigned long pfn) in saveable_highmem_page()
1083 struct page *page; in saveable_highmem_page() local
1088 page = pfn_to_page(pfn); in saveable_highmem_page()
1089 if (page_zone(page) != zone) in saveable_highmem_page()
1092 BUG_ON(!PageHighMem(page)); in saveable_highmem_page()
1094 if (swsusp_page_is_forbidden(page) || swsusp_page_is_free(page) || in saveable_highmem_page()
1095 PageReserved(page)) in saveable_highmem_page()
1098 if (page_is_guard(page)) in saveable_highmem_page()
1101 return page; in saveable_highmem_page()
1143 static struct page *saveable_page(struct zone *zone, unsigned long pfn) in saveable_page()
1145 struct page *page; in saveable_page() local
1150 page = pfn_to_page(pfn); in saveable_page()
1151 if (page_zone(page) != zone) in saveable_page()
1154 BUG_ON(PageHighMem(page)); in saveable_page()
1156 if (swsusp_page_is_forbidden(page) || swsusp_page_is_free(page)) in saveable_page()
1159 if (PageReserved(page) in saveable_page()
1160 && (!kernel_page_present(page) || pfn_is_nosave(pfn))) in saveable_page()
1163 if (page_is_guard(page)) in saveable_page()
1166 return page; in saveable_page()
1211 static void safe_copy_page(void *dst, struct page *s_page) in safe_copy_page()
1224 static inline struct page *
1233 struct page *s_page, *d_page; in copy_data_page()
1350 struct page *page = pfn_to_page(fr_pfn); in swsusp_free() local
1354 __free_page(page); in swsusp_free()
1383 struct page *page; in preallocate_image_pages() local
1385 page = alloc_image_page(mask); in preallocate_image_pages()
1386 if (!page) in preallocate_image_pages()
1388 memory_bm_set_bit(©_bm, page_to_pfn(page)); in preallocate_image_pages()
1389 if (PageHighMem(page)) in preallocate_image_pages()
1485 struct page *page = pfn_to_page(pfn); in free_unnecessary_pages() local
1487 if (PageHighMem(page)) { in free_unnecessary_pages()
1499 swsusp_unset_page_forbidden(page); in free_unnecessary_pages()
1500 swsusp_unset_page_free(page); in free_unnecessary_pages()
1501 __free_page(page); in free_unnecessary_pages()
1780 struct page *page; in alloc_highmem_pages() local
1782 page = alloc_image_page(__GFP_HIGHMEM); in alloc_highmem_pages()
1783 memory_bm_set_bit(bm, page_to_pfn(page)); in alloc_highmem_pages()
1821 struct page *page; in swsusp_alloc() local
1823 page = alloc_image_page(GFP_ATOMIC | __GFP_COLD); in swsusp_alloc()
1824 if (!page) in swsusp_alloc()
1826 memory_bm_set_bit(copy_bm, page_to_pfn(page)); in swsusp_alloc()
1980 struct page *page; in snapshot_read_next() local
1982 page = pfn_to_page(memory_bm_next_pfn(©_bm)); in snapshot_read_next()
1983 if (PageHighMem(page)) { in snapshot_read_next()
1990 kaddr = kmap_atomic(page); in snapshot_read_next()
1995 handle->buffer = page_address(page); in snapshot_read_next()
2118 struct page *copy_page; /* data is here now */
2119 struct page *orig_page; /* data was here before the suspend */
2187 struct page *page; in prepare_highmem_image() local
2189 page = alloc_page(__GFP_HIGHMEM); in prepare_highmem_image()
2190 if (!swsusp_page_is_free(page)) { in prepare_highmem_image()
2192 memory_bm_set_bit(bm, page_to_pfn(page)); in prepare_highmem_image()
2196 swsusp_set_page_forbidden(page); in prepare_highmem_image()
2197 swsusp_set_page_free(page); in prepare_highmem_image()
2221 static struct page *last_highmem_page;
2224 get_highmem_page_buffer(struct page *page, struct chain_allocator *ca) in get_highmem_page_buffer() argument
2229 if (swsusp_page_is_forbidden(page) && swsusp_page_is_free(page)) { in get_highmem_page_buffer()
2233 last_highmem_page = page; in get_highmem_page_buffer()
2244 pbe->orig_page = page; in get_highmem_page_buffer()
2246 struct page *tmp; in get_highmem_page_buffer()
2307 get_highmem_page_buffer(struct page *page, struct chain_allocator *ca) in get_highmem_page_buffer() argument
2420 struct page *page; in get_buffer() local
2426 page = pfn_to_page(pfn); in get_buffer()
2427 if (PageHighMem(page)) in get_buffer()
2428 return get_highmem_page_buffer(page, ca); in get_buffer()
2430 if (swsusp_page_is_forbidden(page) && swsusp_page_is_free(page)) in get_buffer()
2434 return page_address(page); in get_buffer()
2444 pbe->orig_address = page_address(page); in get_buffer()
2565 swap_two_pages_data(struct page *p1, struct page *p2, void *buf) in swap_two_pages_data()