|
@@ -1402,7 +1402,11 @@ int hibernate_preallocate_memory(void)
|
|
|
* highmem and non-highmem zones separately.
|
|
|
*/
|
|
|
pages_highmem = preallocate_image_highmem(highmem / 2);
|
|
|
- alloc = (count - max_size) - pages_highmem;
|
|
|
+ alloc = count - max_size;
|
|
|
+ if (alloc > pages_highmem)
|
|
|
+ alloc -= pages_highmem;
|
|
|
+ else
|
|
|
+ alloc = 0;
|
|
|
pages = preallocate_image_memory(alloc, avail_normal);
|
|
|
if (pages < alloc) {
|
|
|
/* We have exhausted non-highmem pages, try highmem. */
|