From patchwork Thu Mar 13 04:40:34 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Herbert Xu X-Patchwork-Id: 14014293 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 E1105C282DE for ; Thu, 13 Mar 2025 04:40:49 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CC2BA280002; Thu, 13 Mar 2025 00:40:48 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id C4BE6280001; Thu, 13 Mar 2025 00:40:48 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AED86280002; Thu, 13 Mar 2025 00:40:48 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 90F62280001 for ; Thu, 13 Mar 2025 00:40:48 -0400 (EDT) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 5AE04121AC2 for ; Thu, 13 Mar 2025 04:40:48 +0000 (UTC) X-FDA: 83215277376.16.E1FD6EE Received: from abb.hmeau.com (abb.hmeau.com [144.6.53.87]) by imf18.hostedemail.com (Postfix) with ESMTP id D3E431C000E for ; Thu, 13 Mar 2025 04:40:45 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=hmeau.com header.s=formenos header.b=b9oT00sl; dmarc=pass (policy=quarantine) header.from=apana.org.au; spf=pass (imf18.hostedemail.com: domain of herbert@gondor.apana.org.au designates 144.6.53.87 as permitted sender) smtp.mailfrom=herbert@gondor.apana.org.au ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741840846; a=rsa-sha256; cv=none; b=7nhXLrtHJGwrlw393sDEzjb6kqGOIJbhKFB2p54zQuku2JMECrOyJw7afDiALQWpGEodt/ oMWYBIvaw/iCP/neGd+7rJHOTB0ezZ0JpIPs+VlpjQut5ZGkd4yQv/50aYVbL4ishOK2+l P5UdJKvyfUKgGaaflOvwXxYPvCbgMfM= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=hmeau.com header.s=formenos header.b=b9oT00sl; dmarc=pass (policy=quarantine) header.from=apana.org.au; spf=pass (imf18.hostedemail.com: domain of herbert@gondor.apana.org.au designates 144.6.53.87 as permitted sender) smtp.mailfrom=herbert@gondor.apana.org.au ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1741840846; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding:in-reply-to: references:dkim-signature; bh=lXHRa+oExN9zXZEhKA+D04KHA7QghE0Lto71uVp3zwA=; b=LBHBYjoxLX8JNRo5j8kxb7zJZxOZZh7nS2yD2T99o4BLkK0W/9DnGaeC1+u2wz7Is5JEdl 7JLw1+3R3GuUQeDB4+smX0pOlyUaKvwCXtN6DD3+yg2u36OnNAFX3gzsKNPj1Y1rhzay78 JxyYObj3gLvOxxK3q9q1OB3SLYYIi4Q= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=hmeau.com; s=formenos; h=Content-Type:MIME-Version:Message-ID:Subject:To:From:Date: Sender:Reply-To:Cc:Content-Transfer-Encoding:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=lXHRa+oExN9zXZEhKA+D04KHA7QghE0Lto71uVp3zwA=; b=b9oT00slAzCp98rGiq8aMWQhnE 20aBFhnltZYGK9TrEaOTCrtTe5w4wRIf+wMZU3NwUMIXwoss4yU0NmCswX+qx2TiGyMBu4Lc/yu9i Aw1O2Tx3FCkUT0wwth8gBcC8bcjYrJ5X3beNK9evTFA2AUg3i/fkuccGgbXkzuXJSwETJXq/QdvQ+ kJ9/6exH7XC5b7uEzG1YEro+qc6NtxclAFfWd9bQO2g2+Rgxump7M/Do63w8ENfBEFqfc6eEeQawr t9F/VvpfX8uQ78Gg/HiE45b806lK49AGlsXilVfYc2yYSYIf4NeCzv9vwrGRpSnScOYDo68W8bErQ s38f3h+w==; Received: from loth.rohan.me.apana.org.au ([192.168.167.2]) by formenos.hmeau.com with smtp (Exim 4.96 #2 (Debian)) id 1tsaN0-00687w-14; Thu, 13 Mar 2025 12:40:35 +0800 Received: by loth.rohan.me.apana.org.au (sSMTP sendmail emulation); Thu, 13 Mar 2025 12:40:34 +0800 Date: Thu, 13 Mar 2025 12:40:34 +0800 From: Herbert Xu To: linux-mm@kvack.org, Andrew Morton , Linux Kernel Mailing List , Matthew Wilcox , Christoph Hellwig , Zi Yan , Eric Biggers Subject: [PATCH] mm: Move nth_page from folio_page into folio_next Message-ID: MIME-Version: 1.0 Content-Disposition: inline X-Rspam-User: X-Rspamd-Queue-Id: D3E431C000E X-Stat-Signature: uwu6pug8xutdnxnfkn9q44z9m46oti8t X-Rspamd-Server: rspam06 X-HE-Tag: 1741840845-335740 X-HE-Meta: U2FsdGVkX1/TpoZs8wNB1/QuxrLYrB6xqLzfkFNKnnHIuuMqFp4hwZKnbT0121zuzx8+Igmkb032779UsVH9kBt0Fhj/kZmlc0++zOqL11A5W3AzZtXPRiE2rUKyaJxeYTejUlXwb3UaiwZ2zTZPy9E3RWpEZ8izU07n/Nm0judkrqqPuBKSzKH8dOn7kLSnP/+sbXtdifKmWtItWUOj9eQEGOpFo8KvXN/Y2aOgjfaW8pI+rXxSZhU05uUu/92LM9b2iIg7dDVet5nR9t1nPf8m8cd78wqwu6uADjFp8wqoaVNTBTnrONnsmwbczQjevXMhMTWSvEnBpDSkIP4s+dVE4GaCbZsiQxP9liuLFfozRcHh0pUjwiyAWKaStwkWlfwgCCEbmXY5nNN823GcORmh7JJz68U9SeHKlsbRZxcwabkh0gKOu1G3D8RpMz/guQEY8LPuPc/rtkK1DmJODAKajxPlhf72uGSZG6yYx4TeP8RDm+VvIR2VAk53w2xmM8kpv+uHSCWxcx0NFqJ/JzNWf32TxpykA1s6f4GF+Usc8QZ/EQrYp5P+sFeyy5LBNjfS3xXGSiLuKAn8ntyImxlQlCvtKvhZ9Wx1gwFZ1UtCQ+8kVtVZd/WPn1p/uKPv4atcE7FZKjfagFJiVxzbLhkk6NqYkrMbB7WrgaL0umwAwKqW1Qb8a9bnHJ8u7ggXJu7SqED2f2k6XwcMPaKpKdcNgTkfYxu2Wblatj+szB41DWrqWEBK4gPCqkK4txEWdNAcEHZB9sINJIP/3czX4Oz1ZaR1ctLDPJiAk0K0rp92UXx7ACououSv2uHc4gulXuGdxKC+Ks62tJy0PlmNqawTJjNiyKjl7+rEcbwu/oqDOaOeWKzAnAjYwDxwVmVJwHSoItz7YbEwNnrBuDx0Ta82bZ57a01Agot8FgIGBPfW6tgNUHBp63KA4B/hX+syx3R9GveCb3+JEwsjewP F/5hqw+7 ObwnpLFQO8wervq6NyaWAE9rPZsGD3h5zk0tsPPg3vlvun4uVHK5caLUCUPnLNZBPGXNZGXYWVofHOFTWYTHkG5uQd/6cYVLVy464bHYya+YnX1xFsWRdAgKQUg4vpFU/mS4cSgJICF1b3N9POIymCUwzJHsVdqSqcCAJtMBIA3h4zPVzWXd/bYiZBk2qhz/v113/OE84dpiynGPC7nwy+PmcR+ckdZgvp0inMzQljQNnBq5JpYXyBo8YJcDZI+yxozYLqWuHFFx0zl7p+IDgKPiezeqIw2oudFDliJWdUp9OXOhAEWpgeu/yiA== 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: Discontiguous memory may require the use of nth_page instead of adding to struct page arithmetically. However, discontiguous memory cannot exist within a single folio. The function folio_page is mostly used for accessing a page within a folio, therefore using nth_page for it is overkill. Move it to the only place where it's needed, which is folio_next. Signed-off-by: Herbert Xu diff --git a/include/linux/mm.h b/include/linux/mm.h index 7b1068ddcbb7..5f63ee0770f7 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2115,7 +2115,7 @@ static inline int thp_nr_pages(struct page *page) */ static inline struct folio *folio_next(struct folio *folio) { - return (struct folio *)folio_page(folio, folio_nr_pages(folio)); + return (struct folio *)nth_page(&folio->page, folio_nr_pages(folio)); } /** diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h index 36d283552f80..ebba355c45a5 100644 --- a/include/linux/page-flags.h +++ b/include/linux/page-flags.h @@ -275,7 +275,7 @@ static __always_inline unsigned long _compound_head(const struct page *page) * check that the page number lies within @folio; the caller is presumed * to have a reference to the page. */ -#define folio_page(folio, n) nth_page(&(folio)->page, n) +#define folio_page(folio, n) (&(folio)->page + (n)) static __always_inline int PageTail(const struct page *page) {