PM / Hibernate: fix the number of pages used for hibernate/thaw buffering
authorBojan Smojver <bojan@rexursive.com>
Tue, 24 Apr 2012 21:53:28 +0000 (23:53 +0200)
committerBen Hutchings <ben@decadent.org.uk>
Fri, 11 May 2012 12:14:48 +0000 (13:14 +0100)
commite0791b5ffb456aa7de29391297e5dc93c1d123ff
tree3fe552e43669d9af6f66b0d3685462d41385e4d6
parentbb1e005ee88b73be502eb42ca6bdb4c7295b7b3c
PM / Hibernate: fix the number of pages used for hibernate/thaw buffering

commit f8262d476823a7ea1eb497ff9676d1eab2393c75 upstream.

Hibernation regression fix, since 3.2.

Calculate the number of required free pages based on non-high memory
pages only, because that is where the buffers will come from.

Commit 081a9d043c983f161b78fdc4671324d1342b86bc introduced a new buffer
page allocation logic during hibernation, in order to improve the
performance. The amount of pages allocated was calculated based on total
amount of pages available, although only non-high memory pages are
usable for this purpose. This caused hibernation code to attempt to over
allocate pages on platforms that have high memory, which led to hangs.

Signed-off-by: Bojan Smojver <bojan@rexursive.com>
Signed-off-by: Rafael J. Wysocki <rjw@suse.de>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
kernel/power/swap.c