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 AFFFFC54798 for ; Tue, 5 Mar 2024 08:59:57 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2D45A6B0098; Tue, 5 Mar 2024 03:59:46 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 25CC26B0099; Tue, 5 Mar 2024 03:59:46 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0E0E96B009A; Tue, 5 Mar 2024 03:59:46 -0500 (EST) 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 EBFA06B0098 for ; Tue, 5 Mar 2024 03:59:45 -0500 (EST) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id C7C6A1C09B9 for ; Tue, 5 Mar 2024 08:59:45 +0000 (UTC) X-FDA: 81862387530.15.A5F18D9 Received: from mail-ej1-f51.google.com (mail-ej1-f51.google.com [209.85.218.51]) by imf16.hostedemail.com (Postfix) with ESMTP id D939A180006 for ; Tue, 5 Mar 2024 08:59:43 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=ionos.com header.s=google header.b=JtfdMlLV; dmarc=pass (policy=quarantine) header.from=ionos.com; spf=pass (imf16.hostedemail.com: domain of max.kellermann@ionos.com designates 209.85.218.51 as permitted sender) smtp.mailfrom=max.kellermann@ionos.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1709629184; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=tPRAHmknVEgQF0+eI0cWSAplWfhzwY2EyeY5NbL7yXE=; b=qbbO1SYKJGgHqivxmAMJbptZ/kgrvCtb30/qImDjqAmf4gkJdDv171aaClyKUmXXLTb/AE 2CJAtQEMO2IC3sMIQcLl8xENl85NeTabkv3hZB2NDPTTmSH7QxpSSWIpktW7v6mYdA9QgW gK+nCJO92sXYeOa5rxe97RVGA1a2PxE= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=pass header.d=ionos.com header.s=google header.b=JtfdMlLV; dmarc=pass (policy=quarantine) header.from=ionos.com; spf=pass (imf16.hostedemail.com: domain of max.kellermann@ionos.com designates 209.85.218.51 as permitted sender) smtp.mailfrom=max.kellermann@ionos.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1709629184; a=rsa-sha256; cv=none; b=w3qMXVa9tqdPYo8UAu1EpX7KgNNy52uT+LVEhVNA/IbrbLb0+ziFVbBrT2Np+Akl8e4QnU TBfmV5J+ZW3/D6J6DTufICpCbGbVRjMI0d6VJTkFCwl+UnY728YvLP5hIXr8s0rMSNpHZQ bKUq2Ox0acwR3HK/EJpditgl3ylx8vY= Received: by mail-ej1-f51.google.com with SMTP id a640c23a62f3a-a3f893ad5f4so801684366b.2 for ; Tue, 05 Mar 2024 00:59:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ionos.com; s=google; t=1709629182; x=1710233982; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=tPRAHmknVEgQF0+eI0cWSAplWfhzwY2EyeY5NbL7yXE=; b=JtfdMlLVgPcOx/SBsACjmwxvwHn6732TgP4HF7zJg1NcnW5J4HVoAFNU2XtbiPTuph c8ach1k/AZTpYkhTRNpeBkGrJsE9h6XQ2V9eLBmnNZMiW/o7q68W8/OVn5Jn9bmncOkZ gHsDE2LUlNzJx8rWkR0dBgvpIcAoR+6Sd5vxsa1oLQ2wU4QQgLN4lEZ/cxD2JxsDaUBF FlqqWlaSaDA1PHO5c6yC2vuZfLrFhty+oKTw2WtWUuYvptPolR2PiPGHBLywJA7Ynjlb 3mo6+ebOOeELpJAAKhU5P3ygEgnedGdjwRQjwdHt9D6EPkuIT7lwnZrAQoRvZkY17R8w j2xw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709629182; x=1710233982; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=tPRAHmknVEgQF0+eI0cWSAplWfhzwY2EyeY5NbL7yXE=; b=hVRrEUPqXgGnW3nj6Ri50JybCXcqOnb+N8+h38n5Mu+mlBkORoZZFNo03hMpc11oUq ZZry90bBSxA2IhLjPpKxYwGEiJmSsCF+CQcPdHXlahKM0n0F33a+tbdYzfrCSpJk/xST ++jt+B8YVyamoMZTgXyRxWC5k2kEbJLaQFR8VO4OOmi0QnTgZ7WF9TJd9DIE6WVK70rg o/5nd3nQNe92+ZpOE30XKvvQmfSk9skUdFMc42E4NC8OYUi+qIOs3dwbvZn++gTnHrFd szyjN/PfkTo4MiEsBpo7OP+/m/DFieHSp97uST5fBnW/H8w57mm2EA4t3cAUaYFykS3r yy0A== X-Forwarded-Encrypted: i=1; AJvYcCVWfOre45uVrdxDLahybEwbTr4mFhdMh+I0Ia1c0n/JvUPjE5gBvv8WaVoY4yCbRXySOKF15vhA4rrkfczhMetNDKI= X-Gm-Message-State: AOJu0Yx+X7q0rE4eJhxsDPwoCaoEQ4spNN4z7V1t9wZhstN/3x4lswvn ZVxm2xEa/2TmzgqSyf1hiALOcSKrKasshOL2iBoaDWg+xy3awQKS49s0q5Ez3b3arZTbLdcWiV+ E X-Google-Smtp-Source: AGHT+IF3qHNB69qnbIhdOhCn87w4BHGGC/TCaWgfYQYaremgBcPzr7gTWpssGSWJR1NdgYL1iKdKJA== X-Received: by 2002:a17:906:37d6:b0:a45:f05:7e10 with SMTP id o22-20020a17090637d600b00a450f057e10mr4709827ejc.24.1709629182494; Tue, 05 Mar 2024 00:59:42 -0800 (PST) Received: from raven.blarg.de (p200300dc6f010900023064fffe740809.dip0.t-ipconnect.de. [2003:dc:6f01:900:230:64ff:fe74:809]) by smtp.gmail.com with ESMTPSA id gs4-20020a170906f18400b00a449d12cdc5sm4453005ejb.119.2024.03.05.00.59.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Mar 2024 00:59:41 -0800 (PST) From: Max Kellermann To: akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Cc: willy@infradead.org, sfr@canb.auug.org.au, Max Kellermann Subject: [PATCH v3 07/14] linux/mm.h: move folio_next() to mm/folio_next.h Date: Tue, 5 Mar 2024 09:59:12 +0100 Message-Id: <20240305085919.1601395-8-max.kellermann@ionos.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240305085919.1601395-1-max.kellermann@ionos.com> References: <20240305085919.1601395-1-max.kellermann@ionos.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: D939A180006 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: kenb7o4jigu3yfs1zqysz7r3xbk5crit X-HE-Tag: 1709629183-914032 X-HE-Meta: U2FsdGVkX1/kJVc+GJ/ILtKj+8V98aSh3ldnl6cO8HOaY6vil2Wefs/0cYsBa0Jf8XvVnGziz5rvrIYnZsQpQ6tegKb78vi52D9il0feaKbXtsNlm2W4+XOkDyCTDpcbKEG7zqbZLVsckD9ZK/W3CJ7Gf++uTJchJpXkxYyYVm8meYLImmnT0IjFXbLiqRjww2h86dOLFG446clCi8foYXWgqfx2A7XpfSjOoJrghHN4/UNON9Ux9064jurlBcpDLvjV+G7bXW+H7I94H75Guvzfq5QHuaRt5bLLJNxjwyC5Pm2TspHH+/c2xD5XnyxHSIe5gbsyl+8K+oXscx9DX6D8qHxVSIdMwpsqSRCezcz9obm+WEj4GKFKeATh6P1oR0sJV7/5cup+cNNqY8BaqPxfvAInO4oB6LWRVsjIMc2pFmVNIqEmvquDL050+nmiIu5W86uWytjnWdq69KDDlFOqBRpOw6mt3MImCRyXnoHaV1ftJIM+KhjhMXuWkOwO5ciC4ioIu+aRA1psghcZGMGcl7wIcJsZ2go1e5TaWWBh0pmv7UjFsLhicp7PyWPjhNlI6KpCHaiCDWu0S6MVYkahE+cg6Q6PRx8iypaWoZIG9HOcGD/XgSp22Qc+s6ZecepYBc5KXDAUomcHh/zcMKo5Hv2RIEPFANaxVfMu4XF6s3p5x7tmqtV6pzhNu6PFLzTjJeS2TbsxEXQ5UqVG5Dc8WYOnmK4ZY2b6k09s1VfZYLNIas8RzZ2EpiaNv4YoZCe5JX3tosKxtArh/KaQcu3d2wNwCzWNAcoP2gHbjJLiGeaBKiyZjo0s1nemkFvp/zmzf6myiZxAS7IsnPT4rZ1PahK53hbUVVN6mnqR0MQUM8sSegPt/hbxOPW7DSM9EjqDS13s1qrGcZfD/BoubOHC9mWfERxYRvtHTtWerrujGe8aMdbMnnN1YKQeY3XTjgd6s8H5TUmy+mJtyEi Hg8SyTDx FO2tq1w5q9FAA3ZAVZBvlUCe58VpnqN913kDwOAC5emXzq+tVwsnrQMKSJUHHN+H03Q6tAL+h7bcmHadmcTE9IgcEW6Woj9qy/JW3PCFrOlUE0KmOY22HwN1bQhIgx5HRPPjFCheFAnw5XwLvKI/0K7yqFswyBMX/J0FWIaWkQXtTZNgJpu5L6AkOB8vl2VEol4bo8li/P48/c8R7ECpt3tDu0EaWK3KsybX7zXndLHwp/fDwbGm9eFGeZJqzk8eE4JttGrxOi0jBzeRRcv4tf8a+Va93pnZ7h8JwJUVL9A8n8ogENbahrEAwB+Bf6lvOSslHn5rsreQCxUxzx9Ja69TKyNgClop5zhw9oLHEUDUbh3h2HYar2EAvdXf2sy7dfA3UfFeHmht95tHtrF6K8iX71VmqJbOlGkb9BoGmOaF+8JtFNcDtfbqInEB/FeXfIqT1GpJOeVfY+g+4YUCdCcGWQA== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000693, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Prepare to reduce dependencies on linux/mm.h. folio_next() is used by linux/bio.h. Moving it to a separate lean header will allow us to avoid the dependency on linux/mm.h. Signed-off-by: Max Kellermann --- include/linux/mm.h | 20 +------------------- include/linux/mm/folio_next.h | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 19 deletions(-) create mode 100644 include/linux/mm/folio_next.h diff --git a/include/linux/mm.h b/include/linux/mm.h index 0d291ff61db3..e6c2df977abc 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2,6 +2,7 @@ #ifndef _LINUX_MM_H #define _LINUX_MM_H +#include #include #include #include @@ -1922,25 +1923,6 @@ static inline void set_page_links(struct page *page, enum zone_type zone, #define MAX_FOLIO_NR_PAGES MAX_ORDER_NR_PAGES #endif -/** - * folio_next - Move to the next physical folio. - * @folio: The folio we're currently operating on. - * - * If you have physically contiguous memory which may span more than - * one folio (eg a &struct bio_vec), use this function to move from one - * folio to the next. Do not use it if the memory is only virtually - * contiguous as the folios are almost certainly not adjacent to each - * other. This is the folio equivalent to writing ``page++``. - * - * Context: We assume that the folios are refcounted and/or locked at a - * higher level and do not adjust the reference counts. - * Return: The next struct folio. - */ -static inline struct folio *folio_next(struct folio *folio) -{ - return (struct folio *)folio_page(folio, folio_nr_pages(folio)); -} - /** * folio_estimated_sharers - Estimate the number of sharers of a folio. * @folio: The folio. diff --git a/include/linux/mm/folio_next.h b/include/linux/mm/folio_next.h new file mode 100644 index 000000000000..7016e303439c --- /dev/null +++ b/include/linux/mm/folio_next.h @@ -0,0 +1,27 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#ifndef _LINUX_MM_FOLIO_NEXT_H +#define _LINUX_MM_FOLIO_NEXT_H + +#include // for folio_nr_pages() +#include // for nth_page(), needed by folio_page() + +/** + * folio_next - Move to the next physical folio. + * @folio: The folio we're currently operating on. + * + * If you have physically contiguous memory which may span more than + * one folio (eg a &struct bio_vec), use this function to move from one + * folio to the next. Do not use it if the memory is only virtually + * contiguous as the folios are almost certainly not adjacent to each + * other. This is the folio equivalent to writing ``page++``. + * + * Context: We assume that the folios are refcounted and/or locked at a + * higher level and do not adjust the reference counts. + * Return: The next struct folio. + */ +static inline struct folio *folio_next(struct folio *folio) +{ + return (struct folio *)folio_page(folio, folio_nr_pages(folio)); +} + +#endif /* _LINUX_MM_FOLIO_NEXT_H */ -- 2.39.2