From nobody Sun Feb 8 23:58:07 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id AFB72C6FD20 for ; Fri, 24 Mar 2023 05:26:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231491AbjCXF0i (ORCPT ); Fri, 24 Mar 2023 01:26:38 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34872 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230455AbjCXFZe (ORCPT ); Fri, 24 Mar 2023 01:25:34 -0400 Received: from m12.mail.163.com (m12.mail.163.com [220.181.12.197]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id B0DD11C5BC for ; Thu, 23 Mar 2023 22:24:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=From:Subject:Date:Message-Id:MIME-Version; bh=8PuRO ycIaintbBO8Gz+e23AedvlGXHAFLlGqQ+rvl0Q=; b=lq37kYFvwhX1c9BBZkA4I 3/u3EDrSg6Jei/jrFeaLaVAt2B+OfiC/36VUKZewyMfGSCJKMr8X8qqwy4lKJhav 1lucxZODgXx+vqHr6g8OyXIip6XHZv9qDSvgRtV8yfEq923akVBEgZe+kygpX6AH ldRahxf8g6Zk/ExBf56A0Y= Received: from localhost.localdomain (unknown [113.105.127.219]) by zwqz-smtp-mta-g2-2 (Coremail) with SMTP id _____wAH1eHxMx1k5BH_AA--.26874S2; Fri, 24 Mar 2023 13:24:03 +0800 (CST) From: Hongbin Ji To: rppt@kernel.org Cc: akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Hongbin Ji Subject: [PATCH] memblock: Correct calculation method for overflowing range @size Date: Fri, 24 Mar 2023 13:23:51 +0800 Message-Id: <20230324052351.31106-1-jhb_ee@163.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-CM-TRANSID: _____wAH1eHxMx1k5BH_AA--.26874S2 X-Coremail-Antispam: 1Uf129KBjvdXoWrZF18Wr1UJFyxZry5Xw17trb_yoWfCrb_Wa 18tr4xCw1kJr4YkrySv3y0kF4Iq3yftF95ZF17Jr17ZFW5J3WrW3WxWryxX390k3WUX398 Ca1DWry7ZF1fKjkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT 9fnUUvcSsGvfC2KfnxnUUI43ZEXa7sRtq2NJUUUUU== X-Originating-IP: [113.105.127.219] X-CM-SenderInfo: 5mkesvrh6rljoofrz/1tbiShA4fGI0XGYvewABsn Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" When memblock users to specify range where @base + @size overflows and automatically cap it at maximum, The new size should be PHYS_ADDR_MAX - @base + 1. Assuming that base is 0, PHYS_ADDR_MAX is 0xff, which is 255 in decimal, then @size should be 256 instead of 255 Signed-off-by: Hongbin Ji --- mm/memblock.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/memblock.c b/mm/memblock.c index 25fd0626a9e7..f1683d1dae65 100644 --- a/mm/memblock.c +++ b/mm/memblock.c @@ -169,7 +169,7 @@ static enum memblock_flags __init_memblock choose_membl= ock_flags(void) /* adjust *@size so that (@base + *@size) doesn't overflow, return new siz= e */ static inline phys_addr_t memblock_cap_size(phys_addr_t base, phys_addr_t = *size) { - return *size =3D min(*size, PHYS_ADDR_MAX - base); + return *size =3D min(*size, PHYS_ADDR_MAX - base + 1); } =20 /* --=20 2.34.1