From: Aaron Lu Date: Wed, 6 Nov 2013 00:41:31 +0000 (+0800) Subject: PM / hibernate: Avoid overflow in hibernate_preallocate_memory() X-Git-Tag: v3.2.54~154 X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=103ebb406f8ddb3008848d6a243299e5b7ddf2f3;p=pandora-kernel.git PM / hibernate: Avoid overflow in hibernate_preallocate_memory() commit fd432b9f8c7c88428a4635b9f5a9c6e174df6e36 upstream. When system has a lot of highmem (e.g. 16GiB using a 32 bits kernel), the code to calculate how much memory we need to preallocate in normal zone may cause overflow. As Leon has analysed: It looks that during computing 'alloc' variable there is overflow: alloc = (3943404 - 1970542) - 1978280 = -5418 (signed) And this function goes to err_out. Fix this by avoiding that overflow. References: https://bugzilla.kernel.org/show_bug.cgi?id=60817 Reported-and-tested-by: Leon Drugi Signed-off-by: Aaron Lu Signed-off-by: Rafael J. Wysocki Signed-off-by: Ben Hutchings --- Reading git-diff-tree failed