From mboxrd@z Thu Jan 1 00:00:00 1970 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8EC8EC6FD1F for ; Sat, 25 Mar 2023 07:04:16 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 117376B0071; Sat, 25 Mar 2023 03:04:16 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 0C7A26B0074; Sat, 25 Mar 2023 03:04:16 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id ED1406B0075; Sat, 25 Mar 2023 03:04:15 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id DD6406B0071 for ; Sat, 25 Mar 2023 03:04:15 -0400 (EDT) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 9C42B1A0119 for ; Sat, 25 Mar 2023 07:04:15 +0000 (UTC) X-FDA: 80606531670.03.4E9F895 Received: from mail-pf1-f179.google.com (mail-pf1-f179.google.com [209.85.210.179]) by imf22.hostedemail.com (Postfix) with ESMTP id BA861C0008 for ; Sat, 25 Mar 2023 07:04:12 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=QybTFgOt; spf=pass (imf22.hostedemail.com: domain of jihongbin999@gmail.com designates 209.85.210.179 as permitted sender) smtp.mailfrom=jihongbin999@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1679727852; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=VEeKKPyP6D5ZOnLC1IFpmfcIAiTAE8/TJkb3XOHx37w=; b=bWrIYe4gslivbK3cH6kiTs11arpBUevMQnh7LG2oTMQwh0GOw4FKbEEx7IxDNhS0qWIgR2 +a6el1i6ts7Hm+lkm4lZNMalw8pflaPa/fwjxys0qaTn6q13Br0Cblfsjg1HYNouk9P5jY jhQtmn6GsmBnaZBmTDq2TWDp1SBMLSg= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=QybTFgOt; spf=pass (imf22.hostedemail.com: domain of jihongbin999@gmail.com designates 209.85.210.179 as permitted sender) smtp.mailfrom=jihongbin999@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1679727852; a=rsa-sha256; cv=none; b=V6qMD8eGtASrYF45M2wSqQJH2QO5JPnGa0RAxKZ1aoEC9OVKhRByhhETCPoM2feI4CLCXT CquZ4jcPptflwSrDIwkmmOkKpbFVS9ALwr0pkVGbIBBkAhbEV9D+GHJpGSF9NvqsIdgbNc 0yP3UBTf0OylDcb8p1NvgY9Kcpt3JL8= Received: by mail-pf1-f179.google.com with SMTP id s8so2583285pfk.5 for ; Sat, 25 Mar 2023 00:04:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1679727851; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=VEeKKPyP6D5ZOnLC1IFpmfcIAiTAE8/TJkb3XOHx37w=; b=QybTFgOtV2aWoTxK9LbPgWA1xmKe1N7LSuqKWt5sTr8hg36FPeFntmXwZ8OaynF8sa YHNLaniFrpOZ3qRHMku6GdeXVKZ0spCEVTMeJV5MU/z9St2xZMmrRhynhIC4Van39k3i KbK06qm3kIyG6OBsh3vLr9xkoqec022vwCdjNQJdCLK1rVIygSIFV54vBy7GgADCmRgA dHC2nUc7de2Bw6s60XVK9v8jjh4383HYw4CmkuN3/u5WQrvhQ0hkiILxLuhgRhZ3wrg+ nR4fDGQuz3GI7dRziJvsRcV+Bewgwz+ue6AFC2Ptd2aQ/HiB22tbj+25wZDAwp09YRLh I5EA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679727851; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=VEeKKPyP6D5ZOnLC1IFpmfcIAiTAE8/TJkb3XOHx37w=; b=Pzvn62C9mQeBsA1MzeAAGmuupjxP/Ki6oU6yTcKVAdFi7H3RcawkZyfxhY2D1+t429 EYQ2jQWppucgqHKhLjysRHdYb+GM0lcHTv+yHZOOcAKyIiL0jzsHd6l+GFUS1y8iaRhv 6u9wslSahvS0GNjnSvDKqe+5v8K6UE0UJ/MkAC9uZcrFy/wwz9x6JTv8q/baTEiLJafu M7w5F/1D5GfK66xd6ZZPSx5fpLSq+oMBcxngfW8t/yWnArunYYBqa1qtUtTg7YwFhyXW QgBzIzBpg5tPyscBL2PmHXzx0E3Zl1/4EePl9uiIhi3OmvTcq7huYzXlWwWoqn3ROL7v u1TA== X-Gm-Message-State: AAQBX9fqHEacfjSuDQkfzPumY1TJdRUMXQbO2kO56P2Vynh9csg3cPfY rqNO/qSA0eB2II4EEZB19DE73RSPW20Kgg79UOA= X-Google-Smtp-Source: AKy350ZhPSWzq9CxmIFKnSBPBifMyY8FeVfGzlxCkM3U/lUH+vFZmIlLRUu52Gwtdjsh+ZJ+a/WG/jG5HIHZONZmzXU= X-Received: by 2002:a63:d05:0:b0:503:a26e:b4cf with SMTP id c5-20020a630d05000000b00503a26eb4cfmr1299227pgl.8.1679727851484; Sat, 25 Mar 2023 00:04:11 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Hongbin Ji Date: Sat, 25 Mar 2023 15:04:00 +0800 Message-ID: Subject: Re: [PATCH] memblock: Make memblock memblock_dbg info handle overflowing range @base + @size To: Mike Rapoport Cc: akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Server: rspam03 X-Stat-Signature: 5k5gjjnfoez6h7bcjextc5urmpkbtsiz X-Rspamd-Queue-Id: BA861C0008 X-HE-Tag: 1679727852-127764 X-HE-Meta: U2FsdGVkX1+IblcHoLh/TNAQxx1ISWXwWjrgnOM+Qj3UMut2n9Hn+g/1zAGEiDYFbNxM9BnVi4zFOZ4HgIQ9Dkz2tglfQubAgQZouEV3cFPsZhwastUtowa3DiHAhdrhBS4o51cRdEAL0yGI3+KMWUMQo80UVEwt00oBw7Y2dzBLFCFqeuqhFJpndZkGsMJXunvI0wGK1Zo91mYmzbBcgGvmEhjqSFaKJHa7nLLuiZ68nIW467B2HqmPtvRTWGhdXLW+AcwETtjGR0EEr7nBDPRcz+e9tF6mg2bOzKl/5rkkkyCcfr1yZgbKWihbG4U3C6TogGrDenkxfebve++3ZENAh28cLA5qiIY7xR2c98blLFu60yIKDHS9sbQIbSsZYVcAZiN2iDlL/pnlWU4Va7nzAzQ3OAe46vmUYldywVp24A1CTYs5AyUWI/hCCi4EFZV916T1x2tX+VxSiDw9FnamCc8s4xlSnER3KxiZ+AJcxF8fCFTvG0cDclMBZiFnSOA0w395jrocaafruTNE7iLBWJl2+Ip7XFIyUYNwpLxAVEr6QdIlwf7k1SsW2pnrT1EAFx3eIsSmVL+ruMxas/ERvbT25Th5te67rcmcu0MGbstDtG+xxRP4by9q0wumGawzpGDKF0zimzQRjeVmDpN212ItGFBFlR42L/0pvyqIy0eNCrPobEraAbu0p1IT9ogsVPfp+8xaNvlX9M9kBCiOdgt1CBCaPFNZjBQaBj1csxHi0hkRCjNjhQ01VNuDCORIwUWsYNj+3pJ1Ga0Vvla/APFZpM+El7v/ibbnwTLvjAz3eNvloBrEvaCR8k6P54cOccTBsKW6AKHWd1znVbSG7xagYGZJCeVdT5GSIEAAwtNLojfVuPIU+kI6nxRcQdlyD+Ysk6ywVLlV/Iq/IIz4Gbh71iAAwODkoZBS18XLEW3s1KdQ2AGmaTYPKPNG/+S7pQFcnCSAlBaVMUz AD7vczgi RYb5w27CCijmp1fO7w2rTPDwwIFbtzEHD9rvswukAQs3+dreT2Gdn9T82M8yUt6w8LJFI3L8GWYyzjWWBeOqxJyzhUYAM6TIOyasvHwdNA2y5plc1HQDslJr0rDz+pgc6c6DlVKiWB5oN4aPFFdcgRvNqgVUczdplc5mNSthFff+7hPbAXI8lRPlQeztgAxbBG7uDwTIpi7Wrfvh4zM9wnZejx+tu6e4Eg94TIhrh+PddGDF+HrdBZwwBhlfr2CjB5Ou2YtFYNNNc4JFfCjHYKjgn9Q5N6+SS+tsFEWMjwdUWH70VtcCHHS2e+1Fd4mWpYp7DBOMBd5Kx1votPLyZpXECepy14/8Dl5JtkwS8XvJPlh5tCKgNJQOUpNsU6ivj3v6G+OEyAlyOq4g/hCqGCcCclsIxzw/p+FseUCAKmebPBkGJ/Wwxj9Op5ZUv3jUvDMxU3L0q6wwm5BtFQ/ZUG/oxg/5rab0jbKkQIBmGrkxr8g62uI377ZL0l38gtOBcPOCpzc84Y6Ej8rBCcQJjcXpPFc1gzDGzWJIf+RAV88Qx+4liRuJGacqNjGm60qCFbiVaiJCP4kIN/vM= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: Sorry, this is the first time I use email, I checked the top post and bottom post just now, I will modify the sending method. Passing an oversized @size argument is allowed inside membloc_remove(). static inline phys_addr_t memblock_cap_size(phys_addr_t base, phys_addr_t *= size) { return *size =3D min(*size, (phys_addr_t)ULLONG_MAX - base); } phys_addr_t end =3D base + memblock_cap_size(base, &size); and internally checks and handles @size parameter overflow Mike Rapoport =E4=BA=8E2023=E5=B9=B43=E6=9C=8825=E6=97=A5= =E5=91=A8=E5=85=AD 14:42=E5=86=99=E9=81=93=EF=BC=9A > > On Sat, Mar 25, 2023 at 02:25:58PM +0800, Hongbin Ji wrote: > > It is just to correct the information displayed by the debugging. > > The wrong information display is also a problem, but it is not a > > problem that affects the function > > Please don't top post. > > Wrong debugging info will be the least of the problems if memblock_add() = or > membloc_remove() are called with wrong parameters. > > Please work on cleanups based on code inspection outside of mm/ > > > Mike Rapoport =E4=BA=8E2023=E5=B9=B43=E6=9C=8825=E6= =97=A5=E5=91=A8=E5=85=AD 14:04=E5=86=99=E9=81=93=EF=BC=9A > > > > > > On Fri, Mar 24, 2023 at 04:15:13PM +0800, =E7=BA=AA=E5=AE=8F=E5=AE=BE= wrote: > > > > Allow memblock users to specify range where @base + @size overflows= , > > > > This will cause the address range information in the debug output t= o > > > > be displayed incorrectly. > > > > > > Is there a real problem you are trying to solve? > > > > > > > For example, calling memblock_remove(1ULL << PHYS_MASK_SHIFT, > > > > ULLONG_MAX) in arch/arm64/mm/init.c, > > > > would be displayed as: > > > > [ 0.000000] memblock_remove: [0x0001000000000000-0x0000fffffffffffe= ] > > > > arm64_memblock_init+0x24/0x270 > > > > but we expect the output: > > > > [ 0.000000] memblock_remove: [0x0001000000000000-0xffffffffffffffff= ] > > > > arm64_memblock_init+0x24/0x270 > > > > > > > > Signed-off-by: Hongbin Ji > > > > --- > > > > mm/memblock.c | 14 +++++++------- > > > > 1 file changed, 7 insertions(+), 7 deletions(-) > > > > > > > > diff --git a/mm/memblock.c b/mm/memblock.c > > > > index 25fd0626a9e7..567b99e4355d 100644 > > > > --- a/mm/memblock.c > > > > +++ b/mm/memblock.c > > > > @@ -700,7 +700,7 @@ static int __init_memblock > > > > memblock_add_range(struct memblock_type *type, > > > > int __init_memblock memblock_add_node(phys_addr_t base, phys_addr_= t size, > > > > int nid, enum memblock_flags flags) > > > > { > > > > - phys_addr_t end =3D base + size - 1; > > > > + phys_addr_t end =3D base + min(size, PHYS_ADDR_MAX - base + 1) - = 1; > > > > > > > > memblock_dbg("%s: [%pa-%pa] nid=3D%d flags=3D%x %pS\n", __func__, > > > > &base, &end, nid, flags, (void *)_RET_IP_); > > > > @@ -721,7 +721,7 @@ int __init_memblock memblock_add_node(phys_addr= _t > > > > base, phys_addr_t size, > > > > */ > > > > int __init_memblock memblock_add(phys_addr_t base, phys_addr_t siz= e) > > > > { > > > > - phys_addr_t end =3D base + size - 1; > > > > + phys_addr_t end =3D base + min(size, PHYS_ADDR_MAX - base + 1) - = 1; > > > > > > > > memblock_dbg("%s: [%pa-%pa] %pS\n", __func__, > > > > &base, &end, (void *)_RET_IP_); > > > > @@ -822,7 +822,7 @@ static int __init_memblock > > > > memblock_remove_range(struct memblock_type *type, > > > > > > > > int __init_memblock memblock_remove(phys_addr_t base, phys_addr_t = size) > > > > { > > > > - phys_addr_t end =3D base + size - 1; > > > > + phys_addr_t end =3D base + min(size, PHYS_ADDR_MAX - base + 1) - = 1; > > > > > > > > memblock_dbg("%s: [%pa-%pa] %pS\n", __func__, > > > > &base, &end, (void *)_RET_IP_); > > > > @@ -854,7 +854,7 @@ void __init_memblock memblock_free(void *ptr, s= ize_t size) > > > > */ > > > > int __init_memblock memblock_phys_free(phys_addr_t base, phys_addr= _t size) > > > > { > > > > - phys_addr_t end =3D base + size - 1; > > > > + phys_addr_t end =3D base + min(size, PHYS_ADDR_MAX - base + 1) - = 1; > > > > > > > > memblock_dbg("%s: [%pa-%pa] %pS\n", __func__, > > > > &base, &end, (void *)_RET_IP_); > > > > @@ -865,7 +865,7 @@ int __init_memblock memblock_phys_free(phys_add= r_t > > > > base, phys_addr_t size) > > > > > > > > int __init_memblock memblock_reserve(phys_addr_t base, phys_addr_t= size) > > > > { > > > > - phys_addr_t end =3D base + size - 1; > > > > + phys_addr_t end =3D base + min(size, PHYS_ADDR_MAX - base + 1) - = 1; > > > > > > > > memblock_dbg("%s: [%pa-%pa] %pS\n", __func__, > > > > &base, &end, (void *)_RET_IP_); > > > > @@ -876,7 +876,7 @@ int __init_memblock memblock_reserve(phys_addr_= t > > > > base, phys_addr_t size) > > > > #ifdef CONFIG_HAVE_MEMBLOCK_PHYS_MAP > > > > int __init_memblock memblock_physmem_add(phys_addr_t base, phys_ad= dr_t size) > > > > { > > > > - phys_addr_t end =3D base + size - 1; > > > > + phys_addr_t end =3D base + min(size, PHYS_ADDR_MAX - base + 1) - = 1; > > > > > > > > memblock_dbg("%s: [%pa-%pa] %pS\n", __func__, > > > > &base, &end, (void *)_RET_IP_); > > > > @@ -1645,7 +1645,7 @@ void __init memblock_free_late(phys_addr_t ba= se, > > > > phys_addr_t size) > > > > { > > > > phys_addr_t cursor, end; > > > > > > > > - end =3D base + size - 1; > > > > + end =3D base + min(size, PHYS_ADDR_MAX - base + 1) - 1; > > > > memblock_dbg("%s: [%pa-%pa] %pS\n", > > > > __func__, &base, &end, (void *)_RET_IP_); > > > > kmemleak_free_part_phys(base, size); > > > > -- > > > > 2.34.1 > > > > > > -- > > > Sincerely yours, > > > Mike. > > -- > Sincerely yours, > Mike.