diff options
Diffstat (limited to 'kernel/power')
-rw-r--r-- | kernel/power/snapshot.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/kernel/power/snapshot.c b/kernel/power/snapshot.c index e80d282dbf58..41f66365f0d8 100644 --- a/kernel/power/snapshot.c +++ b/kernel/power/snapshot.c | |||
@@ -428,8 +428,14 @@ void swsusp_free(void) | |||
428 | 428 | ||
429 | static int enough_free_mem(unsigned int nr_pages) | 429 | static int enough_free_mem(unsigned int nr_pages) |
430 | { | 430 | { |
431 | pr_debug("swsusp: available memory: %u pages\n", nr_free_pages()); | 431 | struct zone *zone; |
432 | return nr_free_pages() > (nr_pages + PAGES_FOR_IO + | 432 | unsigned int n = 0; |
433 | |||
434 | for_each_zone (zone) | ||
435 | if (!is_highmem(zone)) | ||
436 | n += zone->free_pages; | ||
437 | pr_debug("swsusp: available memory: %u pages\n", n); | ||
438 | return n > (nr_pages + PAGES_FOR_IO + | ||
433 | (nr_pages + PBES_PER_PAGE - 1) / PBES_PER_PAGE); | 439 | (nr_pages + PBES_PER_PAGE - 1) / PBES_PER_PAGE); |
434 | } | 440 | } |
435 | 441 | ||