From: Wen Yang Date: Fri, 3 Jan 2020 15:54:58 +0000 (+0800) Subject: PM: hibernate: improve arithmetic division in preallocate_highmem_fraction() X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=809ed78a832df8b4ef81fee03570566c8f088f3a;p=linux.git PM: hibernate: improve arithmetic division in preallocate_highmem_fraction() do_div() does a 64-by-32 division. Use div64_u64() instead of do_div() if the divisor is u64, to avoid truncation to 32-bit. This change also cleans up code a tad. Signed-off-by: Wen Yang [ rjw: Subject ] Signed-off-by: Rafael J. Wysocki --- diff --git a/kernel/power/snapshot.c b/kernel/power/snapshot.c index 26b9168321e76..8a6eaf7367f30 100644 --- a/kernel/power/snapshot.c +++ b/kernel/power/snapshot.c @@ -1566,9 +1566,7 @@ static unsigned long preallocate_image_highmem(unsigned long nr_pages) */ static unsigned long __fraction(u64 x, u64 multiplier, u64 base) { - x *= multiplier; - do_div(x, base); - return (unsigned long)x; + return div64_u64(x * multiplier, base); } static unsigned long preallocate_highmem_fraction(unsigned long nr_pages,