diff options
Diffstat (limited to 'kernel/power/snapshot.c')
-rw-r--r-- | kernel/power/snapshot.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/kernel/power/snapshot.c b/kernel/power/snapshot.c index b02228411d57..4f0f0604f1c4 100644 --- a/kernel/power/snapshot.c +++ b/kernel/power/snapshot.c | |||
@@ -1132,6 +1132,28 @@ void free_basic_memory_bitmaps(void) | |||
1132 | pr_debug("PM: Basic memory bitmaps freed\n"); | 1132 | pr_debug("PM: Basic memory bitmaps freed\n"); |
1133 | } | 1133 | } |
1134 | 1134 | ||
1135 | void clear_free_pages(void) | ||
1136 | { | ||
1137 | #ifdef CONFIG_PAGE_POISONING_ZERO | ||
1138 | struct memory_bitmap *bm = free_pages_map; | ||
1139 | unsigned long pfn; | ||
1140 | |||
1141 | if (WARN_ON(!(free_pages_map))) | ||
1142 | return; | ||
1143 | |||
1144 | memory_bm_position_reset(bm); | ||
1145 | pfn = memory_bm_next_pfn(bm); | ||
1146 | while (pfn != BM_END_OF_MAP) { | ||
1147 | if (pfn_valid(pfn)) | ||
1148 | clear_highpage(pfn_to_page(pfn)); | ||
1149 | |||
1150 | pfn = memory_bm_next_pfn(bm); | ||
1151 | } | ||
1152 | memory_bm_position_reset(bm); | ||
1153 | pr_info("PM: free pages cleared after restore\n"); | ||
1154 | #endif /* PAGE_POISONING_ZERO */ | ||
1155 | } | ||
1156 | |||
1135 | /** | 1157 | /** |
1136 | * snapshot_additional_pages - Estimate the number of extra pages needed. | 1158 | * snapshot_additional_pages - Estimate the number of extra pages needed. |
1137 | * @zone: Memory zone to carry out the computation for. | 1159 | * @zone: Memory zone to carry out the computation for. |