|
@@ -1318,12 +1318,14 @@ int hibernate_preallocate_memory(void)
|
|
|
|
|
|
/* Compute the maximum number of saveable pages to leave in memory. */
|
|
|
max_size = (count - (size + PAGES_FOR_IO)) / 2 - 2 * SPARE_PAGES;
|
|
|
+ /* Compute the desired number of image pages specified by image_size. */
|
|
|
size = DIV_ROUND_UP(image_size, PAGE_SIZE);
|
|
|
if (size > max_size)
|
|
|
size = max_size;
|
|
|
/*
|
|
|
- * If the maximum is not less than the current number of saveable pages
|
|
|
- * in memory, allocate page frames for the image and we're done.
|
|
|
+ * If the desired number of image pages is at least as large as the
|
|
|
+ * current number of saveable pages in memory, allocate page frames for
|
|
|
+ * the image and we're done.
|
|
|
*/
|
|
|
if (size >= saveable) {
|
|
|
pages = preallocate_image_highmem(save_highmem);
|