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 B7D4AC6FD20 for ; Fri, 24 Mar 2023 08:15:27 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 238DB6B0072; Fri, 24 Mar 2023 04:15:27 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1C18E6B0074; Fri, 24 Mar 2023 04:15:27 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 063A16B0075; Fri, 24 Mar 2023 04:15:26 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id E7E456B0072 for ; Fri, 24 Mar 2023 04:15:26 -0400 (EDT) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id A79EF1C5ECB for ; Fri, 24 Mar 2023 08:15:26 +0000 (UTC) X-FDA: 80603082252.30.1F76A8C Received: from mail-pg1-f180.google.com (mail-pg1-f180.google.com [209.85.215.180]) by imf11.hostedemail.com (Postfix) with ESMTP id EDD2D40015 for ; Fri, 24 Mar 2023 08:15:24 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=ScfrgAoC; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf11.hostedemail.com: domain of jihongbin999@gmail.com designates 209.85.215.180 as permitted sender) smtp.mailfrom=jihongbin999@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1679645725; 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:in-reply-to: references:dkim-signature; bh=Gte3KdIlbvBpKTWmWyAgQcCPANDQeniPU6SZWvI0BrM=; b=XtvJ4jmDLF6zi4DAwyoeSD8dF9ayt4z2HSN0wgbSPWPJWnK/2B2yNvKMCkjjguwjsoCf8m RJfMEQo1QSrQpkSroZmPlF5RZddDZPN2e58HfnJYcVxDthdI9cYDq9n7Ef/dsEqljbZfOE Gm9W0Q48HuyOQQeshhZQKxRqZKAOyoc= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=ScfrgAoC; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf11.hostedemail.com: domain of jihongbin999@gmail.com designates 209.85.215.180 as permitted sender) smtp.mailfrom=jihongbin999@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1679645725; a=rsa-sha256; cv=none; b=nG4vGS90t18ysAFmDkxklURCF8ewXRfqmlkz1cqtj3UvhhK+q3y2hTLGoNowI0HHUETwLr BS5uEneTLf2j4h+qNGTYlfRO/23/SYyT4dGogDcms23FeNW0//yG+vVAIcIyRWkMa52jnp Bwh0KslYxPQh22JGsOET9GkliuWTFZM= Received: by mail-pg1-f180.google.com with SMTP id z10so642037pgr.8 for ; Fri, 24 Mar 2023 01:15:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1679645723; h=cc:to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=Gte3KdIlbvBpKTWmWyAgQcCPANDQeniPU6SZWvI0BrM=; b=ScfrgAoCl1N+wKjFLznONp7Qh7CaXtuur0XCCOJ8WVx6wtx1HwUG2asADPWV7wGhqu STTNzkdasarroUswQrKy1vUCwuaSsF53JOBZwhl91ztlvbN/Lpot5j73nDWckiYwAD73 rzDae4OPXX5ZJb4vY8Ef3pis2zK+qBWSN7lccD5qKur+3WrNYaUe+mjiTqs94tuH0jZf 3Us0r55bkUHqMOr4xBdxwOQ0My1XdL1ZPNBiCFbHaFIzcZBSdHjXGLj6ScuAD0mijhQs imB4VIoMjcGtxqeYj0+5raDlb7TKjrvQauRQugf7iooICCFF23C8NS0DDOW4JRx6UIhE EIJA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679645723; h=cc:to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=Gte3KdIlbvBpKTWmWyAgQcCPANDQeniPU6SZWvI0BrM=; b=EgsFEeTwF3qqXBnunfBdElzdi66koRsbSvg6FQX/jDpfTtPUXy5CDjE1a0K7fckVSA ke1UGMBjwOv3ntfmcsc1pKA6vGVgzf2IJLIQcU0d/p76hjo2CLE9QnAAQZsOoTFtcVp9 QtoAEsCn5m1igPOuzS2BGX+odU9Wevkd2xpF95gp8fhe3ix/43ZTdQAntMtki+CRxPgz SnZiFsEtlS0Yx7um1MRaM4FMFxUP8RNTJGh30gI9DQok9geqcZvYVIdnIMx2BbGU7DQJ iWEaQlw70EuNaxfL3W+kkz77/JF00FQUnmNkgURIHW3/7ZZXp9+1iaN9BRaNS1TRugTO oe7Q== X-Gm-Message-State: AAQBX9dT451t15T8uyZtURG0uBDxDIQzZfJSSJHO8/MrWY7KuVQTnhNC 2VEeGrYvWD79RBa7cUR31Fh6AscJ0GwWo8lIBjE= X-Google-Smtp-Source: AKy350YTd9kahCaVbHy83/95dp8Pj/IQDt/5EPlUott562SdQ9M0SiawLCK30FO2voFhrkEMjpSHoeVRh0D2cKnKpe0= X-Received: by 2002:a05:6a00:8c7:b0:625:cda5:c28c with SMTP id s7-20020a056a0008c700b00625cda5c28cmr1117597pfu.6.1679645723618; Fri, 24 Mar 2023 01:15:23 -0700 (PDT) MIME-Version: 1.0 From: =?UTF-8?B?57qq5a6P5a6+?= Date: Fri, 24 Mar 2023 16:15:13 +0800 Message-ID: Subject: [PATCH] memblock: Make memblock memblock_dbg info handle overflowing range @base + @size To: rppt@kernel.org Cc: akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" X-Rspam-User: X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: EDD2D40015 X-Stat-Signature: qi7hymztygxtjsddi6qryddyha9h47k3 X-HE-Tag: 1679645724-165644 X-HE-Meta: U2FsdGVkX18XzjiFGoj0yoMLAEjqsOJGIbGV9oG7gSJxa5z0gHzVkeqdK0aF/GafAnLjmvvEyXvBwfLvE5bdpDgEgKUjX2Bv6NPNQOI0DXm/dtE5Kb9NcMzI5aVxiPlDdjDSpWPepdcZvWqheuSVlDAI1o08dJPqNI58kJddVgyyGQkjXIhNZeKWgb8iicQ5VTEqwU23rh5hlnOICn8USwvoH9j+Hs10zU3LRU1RiqBxJj2wEPwjZA1u2tIHnqeM8nRYZc1Y73q3W6wt2SSbOMe5l0AvOl6iUV/5UTe1TLxNwNNKcec6nWhpJ9iHlcLhXtJq4wC+FBYq/ZCn0LBianDQCuYZxyebKo+U1IcCl28t8pgGuwW6T/IttcFSAvgt/KJV37Q6APs/bOBOlLX0kxEZCbM330qy0TKsWC0jQCm48F/OHswruz6O3s5onaGauOZVkaJoGp5BJ74lQhrvfdHcNCpzQRA83+N2reUfRow/l1Nsuu449+wWRPBU8buVhx0gS5zzAvF3nzzrvyigsVFTwLPKAT8HcXHb0NsvFsDax5GbWmax7jYWHqBNEOi5bBK9J8tckrZ+aBdQ3LUreyDlwSFV0Fxo5inG7j7lQkKMoMXlvKyMPXmBhc0icK1Imjk1Cu0wBDyUQLaW8cjfqKDEjMLQVwSRD8I7wjJYb6JUZy5ZbKRJHGLxfXjEueFhVVd+CZa+1pEcH2+119UU8KN3ElDdrBZTFwrXo0hF1Ejc8jRzp9211zaI8kVuL+/quLhaF0sqX4+WODEn91Yk+jCHRYEHcoeWj+qYs0USEwThpMI0tyOkFBUX/aryi9/1OA0KK73UP8ewqvipGvnJVjg14p3AslHze1OemIYFiCGQKiUpNXIMKSiWKzPtdAOhFnb3/KsTqqiVPu3uf/8if3c0rgA72qYC7Up4fga6z8IXzqDBgmTG0hKfcS2SCD0ZIq5uvzyN2CC9MX8Gu1m d4JEBeRW 1FKMbh9ZX2jafPk5PnKF9mNYC0JqeoneiSPnklgDEtYZb3V78rzPlrAqwjp66Nh+wSMji5B/ppGyj2LMvFEcxpg6YyRXaCtWFBxbRkqT6GzyhgHFd/FbECEi5WtG91KErJBF152plMq1dmpz+v1Dkeanl5NsD8yqDZO6Wj/erzgWdQ5OEbDhrzSI37SRXPWGkPS05K9oUnPWSdsgMxq1LXqzXagyiZ/0zCBTPbeo4QEBF2SVIjU+CUjwR4MsBCHQOuNzmR8nKqZ09aor8i4fk4Rcadeu2o4IbVqOXlViZrc8G76Wo9S8yswkfLlquCDCMJnV05CCY2VzQ5X967gCdbh8FO9VUjoajlIh/cmwQKhLGSONSQDaSxd35Ek7f20pqZXffpq6LfVLfiEfYBZurDocReMrWJpSLfm3RGtNneM9i5oBBUyo5OvI2u/WaJPNfySXey4wDHWAbgai/o/RiuoJkSNG2jw+3+333ubLck6pVn1e9Zgsa8Dsxvn+SRJqwhNvi 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: Allow memblock users to specify range where @base + @size overflows, This will cause the address range information in the debug output to be displayed incorrectly. 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 = base + size - 1; + phys_addr_t end = base + min(size, PHYS_ADDR_MAX - base + 1) - 1; memblock_dbg("%s: [%pa-%pa] nid=%d flags=%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 size) { - phys_addr_t end = base + size - 1; + phys_addr_t end = 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 = base + size - 1; + phys_addr_t end = 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, size_t size) */ int __init_memblock memblock_phys_free(phys_addr_t base, phys_addr_t size) { - phys_addr_t end = base + size - 1; + phys_addr_t end = 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_addr_t base, phys_addr_t size) int __init_memblock memblock_reserve(phys_addr_t base, phys_addr_t size) { - phys_addr_t end = base + size - 1; + phys_addr_t end = 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_addr_t size) { - phys_addr_t end = base + size - 1; + phys_addr_t end = 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 base, phys_addr_t size) { phys_addr_t cursor, end; - end = base + size - 1; + end = 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