Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp18726598ybl; Fri, 3 Jan 2020 07:57:18 -0800 (PST) X-Google-Smtp-Source: APXvYqx6DAAKnx0zOodGg/aZN5uAB+OpLpYxowpwdrmOLJr0NFx6ZJQRyvZ7Bq/Dw5Hk+w9CuLVf X-Received: by 2002:a05:6830:1257:: with SMTP id s23mr99439674otp.241.1578067038206; Fri, 03 Jan 2020 07:57:18 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1578067038; cv=none; d=google.com; s=arc-20160816; b=S59z/hdGkBWOC65pp81mpicM1LTvdNmAaMT5I+y8C3zIJYM6YjNp3Y9QaAyoqz3qQB XrSJ+G2756NSUgVaf30UX5wp69R/67vGaDDg0v0ERXPtb8Vgu7GnJF+8HGg5iunFgbbp Mh8sHp131UO5mH8hJycuZZlTAcU/2noqJPVYcOBWP43x5Luh0GrOYOH0nIfX9eeqCFjs Ns7G4aPlHPieOqZ2ucvZqRu+nLv/oG6QPW0eHJlpb2O58uHQq6jn0/EInKyuiWtZSEAZ xPKB0gD7ro7JB3EjxkW29cFQAwMcgFrYw7U9P7eA3GExce8aFKyx1oYge/+fWVn2y3pl w6KA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=SPNQ0/ReMMzToRKiFOfhULbonVsBxdKDhDUsRbLB8Lk=; b=bFKkp2V8LoDu1UaAs5gpR139Koh+BwPrlJvoEuzlIoH60aQXZyiqzEo3Gu6WuYHsLG dX4UUkI7wD2WQ/ONW+xneG4/n1Gbsi4wFrxT8NvNgN8C63b8GZwROiHqy0HUCABYdQD9 1wRdLw3Ug8YD5Zz12GCmSqjcrHPrn2qvanw7iyuEFDYvvl+Zu2QgT99O+apPVAo6n3Dy UFRh9A3PANzXIl99hBCs/+dZswD1q9kgO3vzklcfsDZpRsTDc5/P4Idi4L84Sd66k4af 1AxNmCIYS0AsXH0bmRxA5CPltT2f81zCDWXvaS4Gn4UMEl+P3DIemtGWy/z9MoFCGx2q itQA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f17si27704774otl.181.2020.01.03.07.57.04; Fri, 03 Jan 2020 07:57:18 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727803AbgACPzQ (ORCPT + 99 others); Fri, 3 Jan 2020 10:55:16 -0500 Received: from out30-56.freemail.mail.aliyun.com ([115.124.30.56]:59624 "EHLO out30-56.freemail.mail.aliyun.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727539AbgACPzQ (ORCPT ); Fri, 3 Jan 2020 10:55:16 -0500 X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R211e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=e01e07487;MF=wenyang@linux.alibaba.com;NM=1;PH=DS;RN=6;SR=0;TI=SMTPD_---0TmkFDOs_1578066907; Received: from localhost(mailfrom:wenyang@linux.alibaba.com fp:SMTPD_---0TmkFDOs_1578066907) by smtp.aliyun-inc.com(127.0.0.1); Fri, 03 Jan 2020 23:55:13 +0800 From: Wen Yang To: rjw@rjwysocki.net, Len Brown , Pavel Machek Cc: Wen Yang , linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] kernel/power/snapshot.c: improve arithmetic divisions Date: Fri, 3 Jan 2020 23:54:58 +0800 Message-Id: <20200103155458.21707-1-wenyang@linux.alibaba.com> X-Mailer: git-send-email 2.23.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 Cc: "Rafael J. Wysocki" Cc: Len Brown Cc: Pavel Machek Cc: linux-pm@vger.kernel.org Cc: linux-kernel@vger.kernel.org --- kernel/power/snapshot.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/kernel/power/snapshot.c b/kernel/power/snapshot.c index 26b9168..8a6eaf7 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, -- 1.8.3.1