diff options
Diffstat (limited to 'kernel/power/swsusp.c')
-rw-r--r-- | kernel/power/swsusp.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/kernel/power/swsusp.c b/kernel/power/swsusp.c index a92c91451559..1ee6636414b2 100644 --- a/kernel/power/swsusp.c +++ b/kernel/power/swsusp.c | |||
@@ -229,17 +229,16 @@ int swsusp_shrink_memory(void) | |||
229 | size = count_data_pages() + PAGES_FOR_IO + SPARE_PAGES; | 229 | size = count_data_pages() + PAGES_FOR_IO + SPARE_PAGES; |
230 | tmp = size; | 230 | tmp = size; |
231 | size += highmem_size; | 231 | size += highmem_size; |
232 | for_each_zone (zone) | 232 | for_each_populated_zone(zone) { |
233 | if (populated_zone(zone)) { | 233 | tmp += snapshot_additional_pages(zone); |
234 | tmp += snapshot_additional_pages(zone); | 234 | if (is_highmem(zone)) { |
235 | if (is_highmem(zone)) { | 235 | highmem_size -= |
236 | highmem_size -= | ||
237 | zone_page_state(zone, NR_FREE_PAGES); | 236 | zone_page_state(zone, NR_FREE_PAGES); |
238 | } else { | 237 | } else { |
239 | tmp -= zone_page_state(zone, NR_FREE_PAGES); | 238 | tmp -= zone_page_state(zone, NR_FREE_PAGES); |
240 | tmp += zone->lowmem_reserve[ZONE_NORMAL]; | 239 | tmp += zone->lowmem_reserve[ZONE_NORMAL]; |
241 | } | ||
242 | } | 240 | } |
241 | } | ||
243 | 242 | ||
244 | if (highmem_size < 0) | 243 | if (highmem_size < 0) |
245 | highmem_size = 0; | 244 | highmem_size = 0; |