diff options
author | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2013-11-07 19:26:55 +0100 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2013-11-07 19:26:55 +0100 |
commit | feba070dbac6f7b477570e590a7dc960b7b0f784 (patch) | |
tree | 44e25aa2755ca2e54624e6ff20155a237451d688 /kernel | |
parent | 15d4cb9013ab7cdf10760aeabd07b007d635b321 (diff) | |
parent | fd432b9f8c7c88428a4635b9f5a9c6e174df6e36 (diff) | |
download | linux-feba070dbac6f7b477570e590a7dc960b7b0f784.tar.gz linux-feba070dbac6f7b477570e590a7dc960b7b0f784.tar.bz2 linux-feba070dbac6f7b477570e590a7dc960b7b0f784.zip |
Merge branch 'pm-sleep'
* pm-sleep:
PM / hibernate: Avoid overflow in hibernate_preallocate_memory()
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/power/snapshot.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/kernel/power/snapshot.c b/kernel/power/snapshot.c index 98c3b34a4cff..10c22cae83a0 100644 --- a/kernel/power/snapshot.c +++ b/kernel/power/snapshot.c @@ -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. */ |