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 12828C54E58 for ; Tue, 12 Mar 2024 09:42:11 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 182468D002E; Tue, 12 Mar 2024 05:42:01 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 135038D000D; Tue, 12 Mar 2024 05:42:01 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id F14E48D002E; Tue, 12 Mar 2024 05:42:00 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id D758B8D000D for ; Tue, 12 Mar 2024 05:42:00 -0400 (EDT) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id A8CDD140B11 for ; Tue, 12 Mar 2024 09:42:00 +0000 (UTC) X-FDA: 81887895600.30.F000A04 Received: from mail-ej1-f49.google.com (mail-ej1-f49.google.com [209.85.218.49]) by imf09.hostedemail.com (Postfix) with ESMTP id BD4B9140011 for ; Tue, 12 Mar 2024 09:41:58 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=ionos.com header.s=google header.b=LBB3Ux9n; spf=pass (imf09.hostedemail.com: domain of max.kellermann@ionos.com designates 209.85.218.49 as permitted sender) smtp.mailfrom=max.kellermann@ionos.com; dmarc=pass (policy=quarantine) header.from=ionos.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1710236518; a=rsa-sha256; cv=none; b=YbVMdpGe0nTHaFwOsp7YJcL7LQKide4l393yYxr2EMRgoLj1DO1fWwQrHg+QB0CK520na3 6I5wYG7EsxVHb1E959/6EogUp7tqgqhnzkCbgw4lN6yPBkpbFydcrPwfUhHNIe2ziqkOqs 6ZEOh0hJOoZQkEFrm0dBpB8vJaaqo8E= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=ionos.com header.s=google header.b=LBB3Ux9n; spf=pass (imf09.hostedemail.com: domain of max.kellermann@ionos.com designates 209.85.218.49 as permitted sender) smtp.mailfrom=max.kellermann@ionos.com; dmarc=pass (policy=quarantine) header.from=ionos.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1710236518; 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=JGPkTuKJ5UXgz4zp9Mu2mEqhu1uNOO2x34oBDPGxYuICyW0zsMXX2Bw0tPr3J7oZMRDaNk BaUKT20b8eS6OIPeVDq5Oo8tH8NG0ljdUXRMd6gw89VyRh2xwdg3stQpWLx1HFTqDKVuNf 1dbJsoD1R5oS6UaAYsdFml6hO0gfnUo= Received: by mail-ej1-f49.google.com with SMTP id a640c23a62f3a-a446b5a08f0so949685066b.1 for ; Tue, 12 Mar 2024 02:41:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ionos.com; s=google; t=1710236517; x=1710841317; 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=LBB3Ux9ns4w95F7meLQL/K6ORhIEIGbY8bpfmoA8/zTu+3hrkM4+o9CT5ex2ScX60K atpdVGvy5VIt6Xy0hg2J7xywY1HJq3GJ8Q090gGuu1wJxUYcQN5m1DLGCM5P2iP0UyQM ONvaGfTB23pImJ4qY783ua4hWM86NYg72DHpf8rp3vVFFRqW0yhz27elPW1r7zu40d7w pjfpyS3tO8DTb8Uyy3Zfdn0dFfoYGWkAct2sUNAMo6GFVl3jbTzwZ9aJC4GXWOtY4xDh GFAcs1tpk8VfBxY773sHcFNMqSyxk5gGn1NkOBnDJA/vp70fD28DSQW0vo6kKjEcrpUZ p03A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710236517; x=1710841317; 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=QeuBVv7SZLixHs//ZTk/8snRW0r/vWWaxcUzpMZG7BesdQ8U1LLq7CeS8jBtkZlrol xCwZqrHlAa78SfmHaO0YbCpWZoVRzGDv3AkPRx7Vviyaig9MyNmBXAb+T3wTXhN9hHVo ogm5QPBCQ/+EbMLjWEWbbgUnUuPXxXs9k29w+QcESOwO/OZMqqo0q3SoAPdPqPZBXZEI gDlfsvbEO6fxYlSbKL9dO8vkVQEVrxaPnxy6C/sZOz1NAhgSiBIP0wqQ+ryuNMnuu19f WNI3XLBXrO8h0OhdlLyplRKLbaeZWiyTDLPSxIfVGDcl7/n3Y6BjYrK4hrbh21E3ZjH/ m+wg== X-Forwarded-Encrypted: i=1; AJvYcCW8X2oMJm3cbSuiDQbkd9jwR7VdGSYGoYp4ubSt/rnkgcf7bJ2MeTJ1/uk6ugM6n4irxwI1PEcW+TJYR2buzXXUXYA= X-Gm-Message-State: AOJu0YxREdPaeRoL4TL3pWVEvITo3dX1VzgtJuXppaSe1IZU0wI3tFvf ccm05/2YApmKg6oYdoVTkW90lKudyWSnhbF30TCykl1TF8A/R9XSdweX4yRGb9M= X-Google-Smtp-Source: AGHT+IFpb+EqT1uOp7qLMTVjHTnEYVneJSFf9T7njrEKUR2vn/eqj2u6x7yeSAPGnaQTnMQUYnssdQ== X-Received: by 2002:a17:907:868a:b0:a45:b616:29fc with SMTP id qa10-20020a170907868a00b00a45b61629fcmr9967232ejc.0.1710236517463; Tue, 12 Mar 2024 02:41:57 -0700 (PDT) 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 jw22-20020a170906e95600b00a4623030893sm2091961ejb.126.2024.03.12.02.41.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Mar 2024 02:41:56 -0700 (PDT) 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 v4 08/15] linux/mm.h: move folio_next() to mm/folio_next.h Date: Tue, 12 Mar 2024 10:41:26 +0100 Message-Id: <20240312094133.2084996-9-max.kellermann@ionos.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240312094133.2084996-1-max.kellermann@ionos.com> References: <20240312094133.2084996-1-max.kellermann@ionos.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: BD4B9140011 X-Stat-Signature: w89i4zbwgus1z5grkfuuq9dk4f115ewm X-Rspam-User: X-HE-Tag: 1710236518-980712 X-HE-Meta: U2FsdGVkX1/o/7nkhP30oKsaJr+SV5wP4RcnPq57AV96T1P0q2fzbxcWJKZgVKfnG1UQEAbQNXqqkDY6LkzyUNrbTFXgKCrf/O0c+7/8lQfA8sRDpm5+ItMVcm9pJOiHt4nJKxG3EJeyv1NNGOW64XSZFSaegLiWZDDJ9Ufy4TnbIJLme9Pk7OtRsM65VYAA59pzx4YxxX2sPsWDCvXbX+Lnod1OElnIuI03O6IH7BnNI2+dSTXMb3akC6R58dH4PenzFOumryhe8MGiiHWKWmPkeShWNamzHHsHdJesS30X9tJeInKzxYXiWu0ARKraJDMMhR+4TaQUHC+umW1z/14r9uqwBMoOu2lIKvDiHYWdXbUUg9QI43mzHBhNkrCEIVYutDKqo59jthTOuETRQ+yE0Lp04gQK39pg6ea97Oe+vo/y2ftZG4DoJN9NfeuzpyCR49GdT0Qc+Pje9vhAmhwEDQUak+n3aQTU8jZyRKUCSGeeyp6vZTDJBCqYeJeZr2sDcgpUy90dUmDyRb2NeAHJiaXnwWMd7mi7N785mxQZwhNRUwLhuHIJRxNx4zHXopF/FbwfLLGySkg2gfbfyOEYlL9kel2kIVj9zzTnrMyA204A+eHNtvi7kcLh/M08Y3O4/CTHkNt5Na16Y38CoPfNX0tqV/i0INYpEMJ5TUwIQpgp6nxnDT749Hg/MBFI3HxEgNq7gNDnUMa8QeIjE/IXmDJVGqHvw/PSyPW+E9z5Ov2EKmVArVJ9HihEGHRFQYcX83RybxtIiTQuRde66iZJm6UN9j+CO+lRg/qcn8kjkpc8IxklOgzduULW4do/6sEKaHbo1EtrNIG1xjMUxNJxV7ZrnW0h9O9eColZQ/Au/w4Mu9bdYVtgxkP6Q9QQrv74RHirCJ+gUOokqBfiADnC+/IbkAhqAXSsevjiT14k0cOznROSNrG6166P8BDdeiEw2IlWVU58rPK5b5P pzAj5eSd uJwrQl9NyFLmhsokTIzI3DNeGptI0dwnDrsyniaNwDKoNNsDGi+Gqcy+9bT/TuJHcmsD7w1XHKd3c+vrDrvys/g0Lz527W3GJ13h3y3vFSQvi4ZvdDAYPfvZyTsYBbRO1vXd+XrlgZdTm5LJXeN8/ebj/GoApPxNOF5gN4S9yJ8pAUSqBtaeP7zfax+Dq/NdE1biwuhNeVq6W7sUfpWjEIThahcH/2rcUCGOYDDsFWqroQ1n/bUaxlFTmwY7wuHmTK/w0NMfdoU5jgHrnB0Hbycebx2anjEO6QSwYu8EZJh2/vvghJTMF+eZoBUUvwJXT5oLp7HAs1nJPwt/Vh79PL/zwWMMCRdoLu9vbAOdCB0+HJVHggpXgqVwWDdqocv1o0KbOMI3SCHD2p4+Iu+Y7xMuQXX4jsHyHBL9yLtYWm7jJtEDXB9DLuSmPAseAxy02nHfDdkyu4JHzdA6sAQ7HaQlW4Q== X-Bogosity: Ham, tests=bogofilter, spamicity=0.001124, 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