diff options
Diffstat (limited to 'kernel/power/snapshot.c')
-rw-r--r-- | kernel/power/snapshot.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/kernel/power/snapshot.c b/kernel/power/snapshot.c index cbe2c1441392..6a768e537001 100644 --- a/kernel/power/snapshot.c +++ b/kernel/power/snapshot.c | |||
@@ -812,7 +812,8 @@ unsigned int snapshot_additional_pages(struct zone *zone) | |||
812 | unsigned int res; | 812 | unsigned int res; |
813 | 813 | ||
814 | res = DIV_ROUND_UP(zone->spanned_pages, BM_BITS_PER_BLOCK); | 814 | res = DIV_ROUND_UP(zone->spanned_pages, BM_BITS_PER_BLOCK); |
815 | res += DIV_ROUND_UP(res * sizeof(struct bm_block), PAGE_SIZE); | 815 | res += DIV_ROUND_UP(res * sizeof(struct bm_block), |
816 | LINKED_PAGE_DATA_SIZE); | ||
816 | return 2 * res; | 817 | return 2 * res; |
817 | } | 818 | } |
818 | 819 | ||
@@ -858,6 +859,9 @@ static struct page *saveable_highmem_page(struct zone *zone, unsigned long pfn) | |||
858 | PageReserved(page)) | 859 | PageReserved(page)) |
859 | return NULL; | 860 | return NULL; |
860 | 861 | ||
862 | if (page_is_guard(page)) | ||
863 | return NULL; | ||
864 | |||
861 | return page; | 865 | return page; |
862 | } | 866 | } |
863 | 867 | ||
@@ -920,6 +924,9 @@ static struct page *saveable_page(struct zone *zone, unsigned long pfn) | |||
920 | && (!kernel_page_present(page) || pfn_is_nosave(pfn))) | 924 | && (!kernel_page_present(page) || pfn_is_nosave(pfn))) |
921 | return NULL; | 925 | return NULL; |
922 | 926 | ||
927 | if (page_is_guard(page)) | ||
928 | return NULL; | ||
929 | |||
923 | return page; | 930 | return page; |
924 | } | 931 | } |
925 | 932 | ||