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 39CE4C369CB for ; Wed, 23 Apr 2025 13:38:36 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CD06A6B00A6; Wed, 23 Apr 2025 09:38:32 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id BF2E56B00AB; Wed, 23 Apr 2025 09:38:32 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9F16B6B00A7; Wed, 23 Apr 2025 09:38:32 -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 6FD546B00A5 for ; Wed, 23 Apr 2025 09:38:32 -0400 (EDT) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id B73A912072E for ; Wed, 23 Apr 2025 13:38:33 +0000 (UTC) X-FDA: 83365413306.03.682996A Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf13.hostedemail.com (Postfix) with ESMTP id 57AC320003 for ; Wed, 23 Apr 2025 13:38:31 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=uW58jtRq; spf=none (imf13.hostedemail.com: domain of BATV+cfb108382ec1185fc08d+7913+infradead.org+dwmw2@casper.srs.infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=BATV+cfb108382ec1185fc08d+7913+infradead.org+dwmw2@casper.srs.infradead.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1745415511; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=X8ymBgUSA5ZN0KXL1mRdo7aKval8NgY94GI7dvST/r4=; b=JufE+ooHCeI/pG/gBOrjoV+zit30j67KxR5mO+FUAJbbt9P+WvRitoIfNn8ydr28f29TSB 7Es+w3QKCX+WD+V15zeGEh1yklnUpHHA8lMRerqS6bh5vc/MZZ+3yTFrpq/vgjGuP2A/qA EetM1ixRZ8RCzHQ346eWULXcHoB3CtA= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=uW58jtRq; spf=none (imf13.hostedemail.com: domain of BATV+cfb108382ec1185fc08d+7913+infradead.org+dwmw2@casper.srs.infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=BATV+cfb108382ec1185fc08d+7913+infradead.org+dwmw2@casper.srs.infradead.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1745415511; a=rsa-sha256; cv=none; b=pTC7vvcIA2/mVoL6fQYGyD/ZUxm/2NUzNZl6MA8DZufVOr69SRHU8cmrVgoIc7UsmdSaUK QdDmnd8Xdp2Dg6i5sY++qx8gPkaBrjNtrlGRzpa4FGpZSL+yMjdSRzq88Zm3em10ZqGvGR S9LZ/moub1zt9rjy4Au884V32R1aaDs= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Sender:Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From: Reply-To:Content-Type:Content-ID:Content-Description; bh=X8ymBgUSA5ZN0KXL1mRdo7aKval8NgY94GI7dvST/r4=; b=uW58jtRqb9rat/jy8XkoWXi6AM P5hBl1WxKrp7wIkxwfz+6u7NU8jvldTnxq3MoRWuRVIVRPipDpYnUz1mDzIfq3i1QBvampsw2aEwQ I4OxrPjEOuWNCXGVF0jZCkg2UAGOmQSnAvL2XphfzHq2X4K8aOlqPUyyl1hfVjtBX7cVs/aumXtvy jqqPrhjkixIsOz0u2SoFC5F2wMqoSA2j4wbk+EGow/2lwBctZL1ltQRDAhN7sGTYmsUGzkX0a9kmM OIx/37DsAK4P8S1w4p/VCW8r9vTVozBgxF8Z+i4gIBXgypuwJ7hU+0nl5ALm2zd7AOit6GcvxTcPR YbBLCf+A==; Received: from [2001:8b0:10b:1::ebe] (helo=i7.infradead.org) by casper.infradead.org with esmtpsa (Exim 4.98.2 #2 (Red Hat Linux)) id 1u7aIx-000000097Jf-1dtS; Wed, 23 Apr 2025 13:38:23 +0000 Received: from dwoodhou by i7.infradead.org with local (Exim 4.98.1 #2 (Red Hat Linux)) id 1u7aIx-00000003JOg-0b7h; Wed, 23 Apr 2025 14:38:23 +0100 From: David Woodhouse To: Mike Rapoport Cc: Andrew Morton , "Sauerwein, David" , Anshuman Khandual , Ard Biesheuvel , Catalin Marinas , David Hildenbrand , Marc Zyngier , Mark Rutland , Mike Rapoport , Will Deacon , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, Ruihan Li Subject: [PATCH v4 2/7] mm: Implement for_each_valid_pfn() for CONFIG_FLATMEM Date: Wed, 23 Apr 2025 14:33:38 +0100 Message-ID: <20250423133821.789413-3-dwmw2@infradead.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250423133821.789413-1-dwmw2@infradead.org> References: <20250423133821.789413-1-dwmw2@infradead.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SRS-Rewrite: SMTP reverse-path rewritten from by casper.infradead.org. See http://www.infradead.org/rpr.html X-Stat-Signature: fni1g4tms8wi9eef44bssyk7i75tiwta X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 57AC320003 X-Rspam-User: X-HE-Tag: 1745415511-813396 X-HE-Meta: U2FsdGVkX1+VBXBCYTjuQ33Nrgvucm8hcOE/WNqvdpgxijz7huB7ifY2I/Sg0s1BDoaiuEyK/ZJiRI2O3UmESXtID18WWK7g3KBEaHbSpXJy9YAp1tvmyv3RAo+H62lMK1sJrz2hlORmVWc5aP++0o+nSlHjGxFD53A0te5DYKmAAGWcJn/4PRTmrLyOjXWzaM6Zqf4cSxEkTmaxPdhdoylrcw8H2r1z0kJVMKLCIxNHYVkpRpZAV74gADIdbDmBxDjSYfLx7NK2Hnu3kZxAFqpir0yJ4Y7hEc+5OLdIDiYSLJE6Nmf/5EEOFzGs4uiGcclAPpJZgGKTgWslkIVBfGN+iqE2Vk73Qu9q0F/EI8lu0y3JA2qPHSPrEy6vRKomP+baahQTeO7NjQyhBPbfPte4JJc8LjwkQCdOpJDE6Yw1hnmjIZ/EZq7+ZRTxjfDxaHHkbCEfrfnRLjg4iaQOLVvo+yTN9AJi+wP9urddaH10ppBg7xF+3IAV45bNmU/xqJRSc00VpFR5y79xnT+UKGjLz8DVAmr1tIjJmneP0KbiHXyECvRG1IkpJeyJZlG/VEaCLp8QPD5vjJX2wd9P5Xe2Y2woo3UrhYqVdINIa8idcqO8GGrb51Bmi6PvB3IH4h94FK/bTobDr3phrge6Nq3Ln7cGZri+Fhcp8FxswVCgu2LGeqEWmdX+RfpxByQAksE/NqFhjvIvh474H2eoWR6NmN9Xlf2P2H+L3kDPJS2xWeUxSGHOzQ86WncUPXhmhTCAM2WTOZaQr/E2rnokio6MZdA5neuP7rIoRdzXiTtYAMYhQn+Bub0rTZ8a05sh5Woa5j949zHhs3p/2aYHUwU2DjBCNcCswly7QdtEYHTqSZI0QyuBFkqtpHJcUmZCFXFHumFGN1NeBdUZJ02uvG/iayu6iYcJJIZn5U4M9UCQlHJ12a8ufukc/8M+XFlI0vyjkzkhDuqiA4AvQ8n Y3XSuqYc iF8MbyZVkJRYnlgRhQtov4ZeHnYnG12dqrqZHUHhbBOdaK6XA9BwMmSsfoY7/MW7V0ImjP3sAQ+TWLuSwzQsWA91vg6yfFICPfITRJd8wq6VqMqp4YxMFplyoaVbq/9GunnjkBjWYsocXI1By+SWtVGzInuKBROGU07jQUcXXYnYdOa8aSYVBxj7/07G5WUHDcEfLa58KBn7fpVnlOqhyCmUM9cRZxLxFJz80/51T+MxJ/F2FpjOP9+WqPDD0obuD+D0ajHsWWdBfg7NRAw1eUVy9MD3f0FD3XB4pKq0BVtlj0UoXKK6fjZ6f7/U/2B2zRutkS4CPWQkGs0JgrNuLK19Ey1O+a0aNcpiC3+is7hB650Aou/mrYc56sXf9byOrIBvqed6ro30X1M90SY3ofrR0OkI4uJ7xk0VPKchZAFjmLVysWXznRKDbAnr4KLU4mzgM6C1NxU3IyPvcbVvVzRBxJWDYq5acWoCNwaU69MhubClKoyq9XtpBd2GWisaND9gvwO5TVNW1D+uo9p2sYZi9Rmd8mKJYVs7EB3AB3b+2y8pQrdynKBf5ww== 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: List-Subscribe: List-Unsubscribe: From: David Woodhouse In the FLATMEM case, the default pfn_valid() just checks that the PFN is within the range [ ARCH_PFN_OFFSET .. ARCH_PFN_OFFSET + max_mapnr ). The for_each_valid_pfn() function can therefore be a simple for() loop using those as min/max respectively. Signed-off-by: David Woodhouse Reviewed-by: Mike Rapoport (Microsoft) --- include/asm-generic/memory_model.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/include/asm-generic/memory_model.h b/include/asm-generic/memory_model.h index a3b5029aebbd..74d0077cc5fa 100644 --- a/include/asm-generic/memory_model.h +++ b/include/asm-generic/memory_model.h @@ -30,7 +30,15 @@ static inline int pfn_valid(unsigned long pfn) return pfn >= pfn_offset && (pfn - pfn_offset) < max_mapnr; } #define pfn_valid pfn_valid -#endif + +#ifndef for_each_valid_pfn +#define for_each_valid_pfn(pfn, start_pfn, end_pfn) \ + for ((pfn) = max_t(unsigned long, (start_pfn), ARCH_PFN_OFFSET); \ + (pfn) < min_t(unsigned long, (end_pfn), \ + ARCH_PFN_OFFSET + max_mapnr); \ + (pfn)++) +#endif /* for_each_valid_pfn */ +#endif /* valid_pfn */ #elif defined(CONFIG_SPARSEMEM_VMEMMAP) -- 2.49.0