From nobody Fri Oct 3 11:23:42 2025 Received: from mail-ej1-f42.google.com (mail-ej1-f42.google.com [209.85.218.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 219BC272E54 for ; Mon, 1 Sep 2025 20:50:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756759833; cv=none; b=pCbSAd9GANaXsfveb4kGobCb47gHcrXdeFy8s7zvjBfWCZS0yaOJRF17+m06ir16mNqCXMHO3skx2ZAMYDq0fegtLm85CGcWVYen85Uh0IB9YLR1v0/1n/RdH+LQhfuSux91dbBUmx0X8OSRaedcfXLRz6z/a6p19L0IHrHw6Kc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756759833; c=relaxed/simple; bh=t7XT6CEbh7zjmSeSWCr8ZD1olx5I3kyEJDSmUA/OyVg=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=V68KGMujazWyUQ5ebNxV7J2j5GmcE0CqMiLRGOfV3GWwODPFnY+xX5LBDRc8CF5GoVbqWhu4Msm9wrtYzb0ZAmbEv3VWZ+7hkeY4KHdL1iYFj6R7etHFF+Ducjny3rwfMVgONN2d7Qrt0a1afCV+24w3kaqSIBQ0bPZO/T89Wh4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=ionos.com; spf=pass smtp.mailfrom=ionos.com; dkim=pass (2048-bit key) header.d=ionos.com header.i=@ionos.com header.b=gLK6PNaB; arc=none smtp.client-ip=209.85.218.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=ionos.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ionos.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ionos.com header.i=@ionos.com header.b="gLK6PNaB" Received: by mail-ej1-f42.google.com with SMTP id a640c23a62f3a-afcb7322da8so918598566b.0 for ; Mon, 01 Sep 2025 13:50:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ionos.com; s=google; t=1756759829; x=1757364629; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=1tn78QatM6psXy56nBwVEP8sZrX8rAS66Lkst08QtRU=; b=gLK6PNaBOzEjiJLFIBBwG8cqcduLvvio1BVX1TRz97HZpLz9lDaGp6o0CD3qN/XB0q o/4OqHjiotjvrZYa+wf1FTUJ8T65cXLA2ScYnw1k6ZfioDI0BVxJMkB4l2BCYUDrINot rmGggpiREPYta3Rs+GBXRkuEORhN0RuXWt76fjtcuZwGzdUSA40Ub2CnGPEY1pgVwIwy g3WN3zz1o1T4EQhtfHqnjvl4hZSvCvSp9sAY7YPaEFPIITppvKBoXQTFmhX4Sm0Diq1/ Kue/GBW55svAnQzp1ap83FKsFfc/YTmbN03CxMqbS5Bk4md+DNIOT2bJHkpTTYkEtN8w 9Eew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756759829; x=1757364629; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=1tn78QatM6psXy56nBwVEP8sZrX8rAS66Lkst08QtRU=; b=Uq0tJyE4yWvTpmXLnNql+LwdCr11rNui8Oa1pf+tdOHlErawJEIA3q+TKkNAdc5U+v FzMIo+drsxvG3Qew59GzG9Iw7oMZIbZFDqpsPZXc9b/BVMKz0fgsfwfQG1LXp7hsqjOH pbXeK50ZxNH/JDQ70/PQjwrXKk9b0h8lVdjWYV3Z7AU5+XBcb9wKh4vWyiVQ/zW1Amy0 rQ8YReWz+p2RrdLybN6v1rmv6+tNPBUCFS7y0sme7j9S6MbPdom7+Oc3sFOcc5xMW4L9 jnPcciPtQ196PB+ai1NIALBOKJlItHr1PA6FCatAwcLLB9uOnfxaCqghAommg8PEnJEU mXaQ== X-Forwarded-Encrypted: i=1; AJvYcCWSfilglJaHXp4uwQzlNobwEPf3A9Vep9DDSzKLhJ+4WgWZTSytWKrs3YLveDzYe/p/vvzlbYUy1CCWT0I=@vger.kernel.org X-Gm-Message-State: AOJu0Yy4gA2QZK/B8BPbFHIRn9AAne6kY49jffrC90iQ3tbvuglrAhUH QEfkeS0uQCWnKLImXtCNeRgmI863uvwVJmAdude9b6k6fhAzVQSvKTjyqeo3pSjv2Wg= X-Gm-Gg: ASbGncsnYmBB79V5QqYy1ijSyTPTWfqEkOJerWDw456Q3+jnW82QNrKxdN8lpi1K5Rm R/yFFPzoRGYHtGFZWKr4hvTeRrhh0dgzfbo86UIroKyUKUbT7FQ2naNYxmgI/+sscWf4iLzcf0V oBTlyzGeMF6z9k7sX0A6ukJ4SkAqWZbu+S3ezdjXcMV9C6tuXqU1ZModszweislv/qHAfL9t/BU StoUM24LsamPMcv63oeH5BVModAeKugwkupDxz2C50VvA6WH8Q/RxCGIbCQn8jKP1FDBty+KCHx T4e0kEsGvmcmqlLQWrCf1tItVqZrITRzxeDKvIPWRihqTyZHrnAQZvmX5MYIiV4TbKyOhLfr7cE Hwi6O3DwQAwIT2pGgFcGsVQfxFQCMIiOYZ0X1lp9iTueKW5UGacdGDUHQ19GKfhrzM+t5UvICMN ibG0lHsW7RlBzIexbIQB3zu+uwKse6AUIo X-Google-Smtp-Source: AGHT+IF8f2IkqJ53snw7rUXbJM+rbFqtblA8YnCowS1e50uvKMXTh+/K+YqxtlkXHOf7uiwvUXJSGA== X-Received: by 2002:a17:907:1c81:b0:aff:a36:e6e with SMTP id a640c23a62f3a-b01f20c705cmr970127566b.57.1756759829377; Mon, 01 Sep 2025 13:50:29 -0700 (PDT) Received: from raven.intern.cm-ag (p200300dc6f1d0f00023064fffe740809.dip0.t-ipconnect.de. [2003:dc:6f1d:f00:230:64ff:fe74:809]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-afefcbd9090sm937339066b.69.2025.09.01.13.50.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 13:50:29 -0700 (PDT) From: Max Kellermann To: akpm@linux-foundation.org, david@redhat.com, axelrasmussen@google.com, yuanchu@google.com, willy@infradead.org, hughd@google.com, mhocko@suse.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org, lorenzo.stoakes@oracle.com, Liam.Howlett@oracle.com, vbabka@suse.cz, rppt@kernel.org, surenb@google.com, vishal.moola@gmail.com, linux@armlinux.org.uk, James.Bottomley@HansenPartnership.com, deller@gmx.de, agordeev@linux.ibm.com, gerald.schaefer@linux.ibm.com, hca@linux.ibm.com, gor@linux.ibm.com, borntraeger@linux.ibm.com, svens@linux.ibm.com, davem@davemloft.net, andreas@gaisler.com, dave.hansen@linux.intel.com, luto@kernel.org, peterz@infradead.org, tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, x86@kernel.org, hpa@zytor.com, chris@zankel.net, jcmvbkbc@gmail.com, viro@zeniv.linux.org.uk, brauner@kernel.org, jack@suse.cz, weixugc@google.com, baolin.wang@linux.alibaba.com, rientjes@google.com, shakeel.butt@linux.dev, max.kellermann@ionos.com, thuth@redhat.com, broonie@kernel.org, osalvador@suse.de, jfalempe@redhat.com, mpe@ellerman.id.au, nysal@linux.ibm.com, linux-arm-kernel@lists.infradead.org, linux-parisc@vger.kernel.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, linux-fsdevel@vger.kernel.org Subject: [PATCH v6 01/12] mm: constify shmem related test functions for improved const-correctness Date: Mon, 1 Sep 2025 22:50:10 +0200 Message-ID: <20250901205021.3573313-2-max.kellermann@ionos.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250901205021.3573313-1-max.kellermann@ionos.com> References: <20250901205021.3573313-1-max.kellermann@ionos.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" We select certain test functions which either invoke each other, functions that are already const-ified, or no further functions. It is therefore relatively trivial to const-ify them, which provides a basis for further const-ification further up the call stack. Signed-off-by: Max Kellermann Reviewed-by: Vishal Moola (Oracle) Reviewed-by: Lorenzo Stoakes Acked-by: David Hildenbrand Acked-by: Mike Rapoport (Microsoft) Acked-by: Shakeel Butt Acked-by: Vlastimil Babka --- include/linux/mm.h | 8 ++++---- include/linux/shmem_fs.h | 4 ++-- mm/shmem.c | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index cd14298bb958..18deb14cb1f5 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -979,11 +979,11 @@ static inline void vma_iter_set(struct vma_iterator *= vmi, unsigned long addr) * The vma_is_shmem is not inline because it is used only by slow * paths in userfault. */ -bool vma_is_shmem(struct vm_area_struct *vma); -bool vma_is_anon_shmem(struct vm_area_struct *vma); +bool vma_is_shmem(const struct vm_area_struct *vma); +bool vma_is_anon_shmem(const struct vm_area_struct *vma); #else -static inline bool vma_is_shmem(struct vm_area_struct *vma) { return false= ; } -static inline bool vma_is_anon_shmem(struct vm_area_struct *vma) { return = false; } +static inline bool vma_is_shmem(const struct vm_area_struct *vma) { return= false; } +static inline bool vma_is_anon_shmem(const struct vm_area_struct *vma) { r= eturn false; } #endif =20 int vma_is_stack_for_current(struct vm_area_struct *vma); diff --git a/include/linux/shmem_fs.h b/include/linux/shmem_fs.h index 6d0f9c599ff7..0e47465ef0fd 100644 --- a/include/linux/shmem_fs.h +++ b/include/linux/shmem_fs.h @@ -99,9 +99,9 @@ extern unsigned long shmem_get_unmapped_area(struct file = *, unsigned long addr, unsigned long len, unsigned long pgoff, unsigned long flags); extern int shmem_lock(struct file *file, int lock, struct ucounts *ucounts= ); #ifdef CONFIG_SHMEM -bool shmem_mapping(struct address_space *mapping); +bool shmem_mapping(const struct address_space *mapping); #else -static inline bool shmem_mapping(struct address_space *mapping) +static inline bool shmem_mapping(const struct address_space *mapping) { return false; } diff --git a/mm/shmem.c b/mm/shmem.c index 640fecc42f60..2df26f4d6e60 100644 --- a/mm/shmem.c +++ b/mm/shmem.c @@ -275,18 +275,18 @@ static const struct vm_operations_struct shmem_vm_ops; static const struct vm_operations_struct shmem_anon_vm_ops; static struct file_system_type shmem_fs_type; =20 -bool shmem_mapping(struct address_space *mapping) +bool shmem_mapping(const struct address_space *mapping) { return mapping->a_ops =3D=3D &shmem_aops; } EXPORT_SYMBOL_GPL(shmem_mapping); =20 -bool vma_is_anon_shmem(struct vm_area_struct *vma) +bool vma_is_anon_shmem(const struct vm_area_struct *vma) { return vma->vm_ops =3D=3D &shmem_anon_vm_ops; } =20 -bool vma_is_shmem(struct vm_area_struct *vma) +bool vma_is_shmem(const struct vm_area_struct *vma) { return vma_is_anon_shmem(vma) || vma->vm_ops =3D=3D &shmem_vm_ops; } --=20 2.47.2 From nobody Fri Oct 3 11:23:42 2025 Received: from mail-ej1-f49.google.com (mail-ej1-f49.google.com [209.85.218.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2A44C2749D6 for ; Mon, 1 Sep 2025 20:50:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756759835; cv=none; b=biThxUSMxR/8k3PBXs8581+uyXKC0YvdrANRdjfrrYLCJk2zxhsd1XvboX5Xx+PKTCWDhWBKheK7z5mlFmqE8rTB7LME8q4RiV7JzsmLE7580DLOvTARU4mnATm5MtZl8jylBs1Fr5cXt31EeOInLXBgtt701d++MNHtdRu/UpA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756759835; c=relaxed/simple; bh=/6qnaD6d2VWCJpZJo2B+deaPjjZvXL/mHRUWD4nKjTk=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=W0H21xltFaZ3uygA9COUvmFzWJlnbUeamibRcu7KOZfnXgc8ApfhS2UNd5kW2m8rmLWtYbPkWBa47N6FMxlQYo/orl2mrnFBFz1uQeOAwm3QG5qWKFbPG/GahN+/ioKi245XCkZuYkJGMOSdFMZNFEx5Og0VnNUciP787NC564Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=ionos.com; spf=pass smtp.mailfrom=ionos.com; dkim=pass (2048-bit key) header.d=ionos.com header.i=@ionos.com header.b=UIw0MatM; arc=none smtp.client-ip=209.85.218.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=ionos.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ionos.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ionos.com header.i=@ionos.com header.b="UIw0MatM" Received: by mail-ej1-f49.google.com with SMTP id a640c23a62f3a-b0418f6fc27so235929766b.3 for ; Mon, 01 Sep 2025 13:50:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ionos.com; s=google; t=1756759831; x=1757364631; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=/1f6qJQlKU2vedlQkEZgjWqTzAp5uFD499wqNXxzlp0=; b=UIw0MatMqmkciVFZIkn2hb66YmgqUFeLuRTcwlbxbCB3FSZG7gxW0Frco71kxz0VuK kpagEq/sXOm3G+EzC9Xv3qK5IGlxNjiZUmEEW+1Cl/p6cXe9xsghLiCcPvlxv3CQAVtL qXN6N2t6metZUJoYqWYPMwr+O7TtzIIqo/rE+gpwJ2TtMpajus3wEXgyyL9Db4lWZAsZ vpNlalVzgHsiu8+QTCPYmT6UYO/Nqrao+YM8cZ8uXp9h2ZtHUX0krMuC0ZQ8403OHp6U MDDUNS9MHlKafE7s++TYPj0YcWJY3cmrauXpAn90srImRgjq3Cng86v4SOth8VpcPpsd NBjA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756759831; x=1757364631; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=/1f6qJQlKU2vedlQkEZgjWqTzAp5uFD499wqNXxzlp0=; b=VOxMgr7FcAWx0ztIiSfvc/vCjuavJW8JxDiOwJreVpZ5HD23IepZMSYopxV/yYVQMX /cg1/F1QuR68/h8ZmgUVjpIQqq8fw9qIIvytXAgmVePFil6SSSd03Q5V/WzOAjJ4TS/1 g7Bf5YzLq7qvMH9mBY7XO8fspPTMGHiqQRsX4xLnx24LHfGXglNBp0HozB4HI83u6dto oRy533aYKNih9W3eyFxThXnB+wLBtWV9zm3ZVRhKz3e/9wW3Z9RdFOsR93LPN3LtAFik kWHbhf7cQTgv4SoJiONEnxAp11DxCPto12TsNPPygwjSKPDKcMUriTfSZSVPiR1g4JiO s5Iw== X-Forwarded-Encrypted: i=1; AJvYcCVY/pYr3eDLWJ1dIeh8jh3LGu8X7HSW3NyBqKlFRtMsjJvxGEIKo9PC8LVFSjc9cNzzIHp4p58InUQRnpo=@vger.kernel.org X-Gm-Message-State: AOJu0YyLkfWeRvOrtMel1Uelgv04nYsRaik62b08JYtMXJz4j1adWYDb vxLpWxax6zV/zTIBDLdJAvc521ZAi9Ng84aMAddXxjGB7GCLfXynGoBXKpVeiH5Q2KM= X-Gm-Gg: ASbGncu2q1pSpVDceiBuXevPkDQaVbnFEWgQMnY26EOmNQI2Phe+A0dQ1b4b8/xEg5O bvl1fBnMWS3uKeFSkdQIJZAoUxV94SpLhYLEDyJGfdx0Y9kotD1j/Ps7iQjFxPl/Pz/sXCDX3Mk lDCkk8oaKQPTA6f1lpI6YGS7RTemutzM/Pf5pCTS51WtMSYxmcisRvFYGeAzFT36k+rYEsZ8jA5 2L13hCfiHVXu80v6tghjEn3Rj7eA2om0DRJUaRPiB4B1zfAgozd3jJFmNxHTwTN+kmsLN+9/gex Iz8BAMchDN/sdTMOLZiasef0fMCgxUhPjWVJrpo/PaVOcz89WZhFRTtdd1Rc1mmGrQxLQiAiXYu i2RIvbfseI7IhnGVC3BqaT4FXcYGddnORZaBWJm7D8wvKTvcm0ofRS2bFDemCIp2CRYlzrZO1rk WqYnsjx8eHLI/K3UNc4GYcug== X-Google-Smtp-Source: AGHT+IGLBX6wwzb3cKCBC/QZF935pSrteygp8WwfL9cJcqtVvsCINHnkd9V2DN5htvTXhoMdjdntAg== X-Received: by 2002:a17:906:4fd5:b0:b04:2ee1:8cb with SMTP id a640c23a62f3a-b042ee110c4mr549232466b.63.1756759831287; Mon, 01 Sep 2025 13:50:31 -0700 (PDT) Received: from raven.intern.cm-ag (p200300dc6f1d0f00023064fffe740809.dip0.t-ipconnect.de. [2003:dc:6f1d:f00:230:64ff:fe74:809]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-afefcbd9090sm937339066b.69.2025.09.01.13.50.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 13:50:31 -0700 (PDT) From: Max Kellermann To: akpm@linux-foundation.org, david@redhat.com, axelrasmussen@google.com, yuanchu@google.com, willy@infradead.org, hughd@google.com, mhocko@suse.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org, lorenzo.stoakes@oracle.com, Liam.Howlett@oracle.com, vbabka@suse.cz, rppt@kernel.org, surenb@google.com, vishal.moola@gmail.com, linux@armlinux.org.uk, James.Bottomley@HansenPartnership.com, deller@gmx.de, agordeev@linux.ibm.com, gerald.schaefer@linux.ibm.com, hca@linux.ibm.com, gor@linux.ibm.com, borntraeger@linux.ibm.com, svens@linux.ibm.com, davem@davemloft.net, andreas@gaisler.com, dave.hansen@linux.intel.com, luto@kernel.org, peterz@infradead.org, tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, x86@kernel.org, hpa@zytor.com, chris@zankel.net, jcmvbkbc@gmail.com, viro@zeniv.linux.org.uk, brauner@kernel.org, jack@suse.cz, weixugc@google.com, baolin.wang@linux.alibaba.com, rientjes@google.com, shakeel.butt@linux.dev, max.kellermann@ionos.com, thuth@redhat.com, broonie@kernel.org, osalvador@suse.de, jfalempe@redhat.com, mpe@ellerman.id.au, nysal@linux.ibm.com, linux-arm-kernel@lists.infradead.org, linux-parisc@vger.kernel.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, linux-fsdevel@vger.kernel.org Subject: [PATCH v6 02/12] mm: constify pagemap related test/getter functions Date: Mon, 1 Sep 2025 22:50:11 +0200 Message-ID: <20250901205021.3573313-3-max.kellermann@ionos.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250901205021.3573313-1-max.kellermann@ionos.com> References: <20250901205021.3573313-1-max.kellermann@ionos.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" For improved const-correctness. We select certain test functions which either invoke each other, functions that are already const-ified, or no further functions. It is therefore relatively trivial to const-ify them, which provides a basis for further const-ification further up the call stack. Signed-off-by: Max Kellermann Reviewed-by: Vishal Moola (Oracle) Reviewed-by: Lorenzo Stoakes Acked-by: David Hildenbrand Acked-by: Mike Rapoport (Microsoft) Acked-by: Shakeel Butt Acked-by: Vlastimil Babka --- include/linux/pagemap.h | 57 +++++++++++++++++++++-------------------- 1 file changed, 29 insertions(+), 28 deletions(-) diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h index a3e16d74792f..1d3803c397e9 100644 --- a/include/linux/pagemap.h +++ b/include/linux/pagemap.h @@ -140,7 +140,7 @@ static inline int inode_drain_writes(struct inode *inod= e) return filemap_write_and_wait(inode->i_mapping); } =20 -static inline bool mapping_empty(struct address_space *mapping) +static inline bool mapping_empty(const struct address_space *mapping) { return xa_empty(&mapping->i_pages); } @@ -166,7 +166,7 @@ static inline bool mapping_empty(struct address_space *= mapping) * refcount and the referenced bit, which will be elevated or set in * the process of adding new cache pages to an inode. */ -static inline bool mapping_shrinkable(struct address_space *mapping) +static inline bool mapping_shrinkable(const struct address_space *mapping) { void *head; =20 @@ -267,7 +267,7 @@ static inline void mapping_clear_unevictable(struct add= ress_space *mapping) clear_bit(AS_UNEVICTABLE, &mapping->flags); } =20 -static inline bool mapping_unevictable(struct address_space *mapping) +static inline bool mapping_unevictable(const struct address_space *mapping) { return mapping && test_bit(AS_UNEVICTABLE, &mapping->flags); } @@ -277,7 +277,7 @@ static inline void mapping_set_exiting(struct address_s= pace *mapping) set_bit(AS_EXITING, &mapping->flags); } =20 -static inline int mapping_exiting(struct address_space *mapping) +static inline int mapping_exiting(const struct address_space *mapping) { return test_bit(AS_EXITING, &mapping->flags); } @@ -287,7 +287,7 @@ static inline void mapping_set_no_writeback_tags(struct= address_space *mapping) set_bit(AS_NO_WRITEBACK_TAGS, &mapping->flags); } =20 -static inline int mapping_use_writeback_tags(struct address_space *mapping) +static inline int mapping_use_writeback_tags(const struct address_space *m= apping) { return !test_bit(AS_NO_WRITEBACK_TAGS, &mapping->flags); } @@ -333,7 +333,7 @@ static inline void mapping_set_inaccessible(struct addr= ess_space *mapping) set_bit(AS_INACCESSIBLE, &mapping->flags); } =20 -static inline bool mapping_inaccessible(struct address_space *mapping) +static inline bool mapping_inaccessible(const struct address_space *mappin= g) { return test_bit(AS_INACCESSIBLE, &mapping->flags); } @@ -343,18 +343,18 @@ static inline void mapping_set_writeback_may_deadlock= _on_reclaim(struct address_ set_bit(AS_WRITEBACK_MAY_DEADLOCK_ON_RECLAIM, &mapping->flags); } =20 -static inline bool mapping_writeback_may_deadlock_on_reclaim(struct addres= s_space *mapping) +static inline bool mapping_writeback_may_deadlock_on_reclaim(const struct = address_space *mapping) { return test_bit(AS_WRITEBACK_MAY_DEADLOCK_ON_RECLAIM, &mapping->flags); } =20 -static inline gfp_t mapping_gfp_mask(struct address_space * mapping) +static inline gfp_t mapping_gfp_mask(const struct address_space *mapping) { return mapping->gfp_mask; } =20 /* Restricts the given gfp_mask to what the mapping allows. */ -static inline gfp_t mapping_gfp_constraint(struct address_space *mapping, +static inline gfp_t mapping_gfp_constraint(const struct address_space *map= ping, gfp_t gfp_mask) { return mapping_gfp_mask(mapping) & gfp_mask; @@ -477,13 +477,13 @@ mapping_min_folio_order(const struct address_space *m= apping) } =20 static inline unsigned long -mapping_min_folio_nrpages(struct address_space *mapping) +mapping_min_folio_nrpages(const struct address_space *mapping) { return 1UL << mapping_min_folio_order(mapping); } =20 static inline unsigned long -mapping_min_folio_nrbytes(struct address_space *mapping) +mapping_min_folio_nrbytes(const struct address_space *mapping) { return mapping_min_folio_nrpages(mapping) << PAGE_SHIFT; } @@ -497,7 +497,7 @@ mapping_min_folio_nrbytes(struct address_space *mapping) * new folio to the page cache and need to know what index to give it, * call this function. */ -static inline pgoff_t mapping_align_index(struct address_space *mapping, +static inline pgoff_t mapping_align_index(const struct address_space *mapp= ing, pgoff_t index) { return round_down(index, mapping_min_folio_nrpages(mapping)); @@ -507,7 +507,7 @@ static inline pgoff_t mapping_align_index(struct addres= s_space *mapping, * Large folio support currently depends on THP. These dependencies are * being worked on but are not yet fixed. */ -static inline bool mapping_large_folio_support(struct address_space *mappi= ng) +static inline bool mapping_large_folio_support(const struct address_space = *mapping) { /* AS_FOLIO_ORDER is only reasonable for pagecache folios */ VM_WARN_ONCE((unsigned long)mapping & FOLIO_MAPPING_ANON, @@ -522,7 +522,7 @@ static inline size_t mapping_max_folio_size(const struc= t address_space *mapping) return PAGE_SIZE << mapping_max_folio_order(mapping); } =20 -static inline int filemap_nr_thps(struct address_space *mapping) +static inline int filemap_nr_thps(const struct address_space *mapping) { #ifdef CONFIG_READ_ONLY_THP_FOR_FS return atomic_read(&mapping->nr_thps); @@ -936,7 +936,7 @@ static inline struct page *grab_cache_page_nowait(struc= t address_space *mapping, * * Return: The index of the folio which follows this folio in the file. */ -static inline pgoff_t folio_next_index(struct folio *folio) +static inline pgoff_t folio_next_index(const struct folio *folio) { return folio->index + folio_nr_pages(folio); } @@ -965,7 +965,7 @@ static inline struct page *folio_file_page(struct folio= *folio, pgoff_t index) * e.g., shmem did not move this folio to the swap cache. * Return: true or false. */ -static inline bool folio_contains(struct folio *folio, pgoff_t index) +static inline bool folio_contains(const struct folio *folio, pgoff_t index) { VM_WARN_ON_ONCE_FOLIO(folio_test_swapcache(folio), folio); return index - folio->index < folio_nr_pages(folio); @@ -1042,13 +1042,13 @@ static inline loff_t page_offset(struct page *page) /* * Get the offset in PAGE_SIZE (even for hugetlb folios). */ -static inline pgoff_t folio_pgoff(struct folio *folio) +static inline pgoff_t folio_pgoff(const struct folio *folio) { return folio->index; } =20 -static inline pgoff_t linear_page_index(struct vm_area_struct *vma, - unsigned long address) +static inline pgoff_t linear_page_index(const struct vm_area_struct *vma, + const unsigned long address) { pgoff_t pgoff; pgoff =3D (address - vma->vm_start) >> PAGE_SHIFT; @@ -1468,7 +1468,7 @@ static inline unsigned int __readahead_batch(struct r= eadahead_control *rac, * readahead_pos - The byte offset into the file of this readahead request. * @rac: The readahead request. */ -static inline loff_t readahead_pos(struct readahead_control *rac) +static inline loff_t readahead_pos(const struct readahead_control *rac) { return (loff_t)rac->_index * PAGE_SIZE; } @@ -1477,7 +1477,7 @@ static inline loff_t readahead_pos(struct readahead_c= ontrol *rac) * readahead_length - The number of bytes in this readahead request. * @rac: The readahead request. */ -static inline size_t readahead_length(struct readahead_control *rac) +static inline size_t readahead_length(const struct readahead_control *rac) { return rac->_nr_pages * PAGE_SIZE; } @@ -1486,7 +1486,7 @@ static inline size_t readahead_length(struct readahea= d_control *rac) * readahead_index - The index of the first page in this readahead request. * @rac: The readahead request. */ -static inline pgoff_t readahead_index(struct readahead_control *rac) +static inline pgoff_t readahead_index(const struct readahead_control *rac) { return rac->_index; } @@ -1495,7 +1495,7 @@ static inline pgoff_t readahead_index(struct readahea= d_control *rac) * readahead_count - The number of pages in this readahead request. * @rac: The readahead request. */ -static inline unsigned int readahead_count(struct readahead_control *rac) +static inline unsigned int readahead_count(const struct readahead_control = *rac) { return rac->_nr_pages; } @@ -1504,12 +1504,12 @@ static inline unsigned int readahead_count(struct r= eadahead_control *rac) * readahead_batch_length - The number of bytes in the current batch. * @rac: The readahead request. */ -static inline size_t readahead_batch_length(struct readahead_control *rac) +static inline size_t readahead_batch_length(const struct readahead_control= *rac) { return rac->_batch_count * PAGE_SIZE; } =20 -static inline unsigned long dir_pages(struct inode *inode) +static inline unsigned long dir_pages(const struct inode *inode) { return (unsigned long)(inode->i_size + PAGE_SIZE - 1) >> PAGE_SHIFT; @@ -1523,8 +1523,8 @@ static inline unsigned long dir_pages(struct inode *i= node) * Return: the number of bytes in the folio up to EOF, * or -EFAULT if the folio was truncated. */ -static inline ssize_t folio_mkwrite_check_truncate(struct folio *folio, - struct inode *inode) +static inline ssize_t folio_mkwrite_check_truncate(const struct folio *fol= io, + const struct inode *inode) { loff_t size =3D i_size_read(inode); pgoff_t index =3D size >> PAGE_SHIFT; @@ -1555,7 +1555,8 @@ static inline ssize_t folio_mkwrite_check_truncate(st= ruct folio *folio, * Return: The number of filesystem blocks covered by this folio. */ static inline -unsigned int i_blocks_per_folio(struct inode *inode, struct folio *folio) +unsigned int i_blocks_per_folio(const struct inode *inode, + const struct folio *folio) { return folio_size(folio) >> inode->i_blkbits; } --=20 2.47.2 From nobody Fri Oct 3 11:23:42 2025 Received: from mail-ej1-f42.google.com (mail-ej1-f42.google.com [209.85.218.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0EB4627511A for ; Mon, 1 Sep 2025 20:50:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756759838; cv=none; b=Dtd7K6Y89srC7UcEF905F9g2VHiuznxybO0MOBHqwLfGL29FZ3P8eCrlI7Lhz+zMuCd9gFXWdEqyinB1rvMYqNAoMKUXTzash5GP8HT7K/p3R/Blx05Y8/z56Y9PYUkoN8iMQbs+w4oLxQhNDbGZ8b2xscUgdvIX85tUel/dp0g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756759838; c=relaxed/simple; bh=TMT49CqstTNtBaTVBDnVTRRV9UZlWdrh748RuoUcnSc=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hl4zi7LvG2NzUVFbp20hzyjcoJPGwfY90KEVVlES1A1/Vq52SMz9irTG4THeNzbwFwR5UjumPEsblOBe4Ef66KvtbZnhJXtCe6E4pZVyDvLC/Rgslb8WnbNr7HjwlM89PTO4HVtS+Gm0AQsbxygSWnPrcvmT3TCW3wCyaQ+btM8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=ionos.com; spf=pass smtp.mailfrom=ionos.com; dkim=pass (2048-bit key) header.d=ionos.com header.i=@ionos.com header.b=FHQ91QSn; arc=none smtp.client-ip=209.85.218.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=ionos.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ionos.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ionos.com header.i=@ionos.com header.b="FHQ91QSn" Received: by mail-ej1-f42.google.com with SMTP id a640c23a62f3a-b0449b1b56eso41255066b.1 for ; Mon, 01 Sep 2025 13:50:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ionos.com; s=google; t=1756759833; x=1757364633; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=+HuFWfM/wBc81hJ9dDpPKVdEJMtdQ1aHoBTwvYzmlVA=; b=FHQ91QSnsRjfVPy0zY1rSfaE13IzuBddN7koWV8FABvl4CnCk1K0RyXVwVx7Aj4Aa5 OnyKz1581fAFHF4LMEnp//MdHK+M9kSxednjB9fj6Xl6fgGTeB15VKX2ioru/1BBvOi4 X0M7YrbW3UUo7jKn32autgZTe9pdRuKEdoTSbtZ4uCheXuopYkRvX0qnigHN7ni5xQjd zIIiOp7UVOvU/9k89LRoHcVK2OFg9YYU3lzg8etBf3KUIie3IyKTxGG+vGjHVTXR4p+Z yMPlZiAullwaGpbq6Oqfs1GsyKJifr1dmQ6kAZxxt6tym9hIjF/esK8ZX4J0cj5TMmAZ qBzg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756759833; x=1757364633; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+HuFWfM/wBc81hJ9dDpPKVdEJMtdQ1aHoBTwvYzmlVA=; b=K7uyBpaVyn7hag34edLhKeiO+u75km8fCtAVYBCLsF8ZHu0nbPfT5lho9sXowvhr+n xgAElE7xXHo/va1Zvzpg2QLYE0Iil9zlnmLRGWBid5olAZlKNjQuqN6GRSjIGHSYG1oV ZlxLmBRtE21Kh5RJOFH+C+CpU8gzg+cEWaZ6Y9e5UH1YFmWKcEITwUvpUP6iBmcFrI0l 3wZo/pjjBK7JeN2x6wzsE7xRTFLpycfc4EWAHkH1REXY9eve0fXz+gE8gbudtgAaF1eo VE+2vlrsv7e2uEI9fq73PMd2AO0FQOiloO8knZkf9LCEUriHBOX0U3Dv1iqnvQqwTFjK SoZQ== X-Forwarded-Encrypted: i=1; AJvYcCUQHy3p3qWgIrllUAaM5ZgARSHD+OOwE3d4VcnP1R4I2i9TYnM99nJmmghDWgWIEKiVC2+HJc2Jh4Ha9oo=@vger.kernel.org X-Gm-Message-State: AOJu0Yy50ZHidwTdkn8f+Vw5cMqmG41/EJKRo3XMVZJRpsvhWbNR5jvB OuUHMb/wEuAdNc6cJ5f7iDmIH4KDvA6GJQH4iGeZBB6C11WFSxa36NqekxX6ynTl5vg= X-Gm-Gg: ASbGncsqzBvOobO07t1ohJQjampwa14CPmx6Wa3lUgTsJEWN6mz9ocxJpzpuVhVjjKk WZ6aOJwm8kgFRGOGFI1+/aZ05OiNtu75dxnxf125cpnuaTrOwcAWssyQmmkIiA91RvGa6lyYnx+ qHalkhuTyqik3Eg1hnu4+KgY/7jNdEm93wt804C/iVuoilG2KN+ZKexoDETuz8wGz1G8jmKRnJS ZH5Qyikd72WKUsekSdleluikA1Ha3fhkys0i4IXt+P6eUOTVQ2BnzmVPwrx8+8NN05j4idh25Ep ibSyrfu/9++7yML6EWpYZkAXPizYiQ8IejUAN6SB5Q5PgJ4pScz2o5HABXSWlPywxJ6d2LRxUao BJqEyjeg3InLtM6LJzwxVF7kP3rUKjU7s0TjYez7hrGWz99r8MRVIQyfnrb2OK+jKSt5Np6t14E +lRcd/yDRAstyIx0le5T7WNfMcZth1VPO5 X-Google-Smtp-Source: AGHT+IE84zezaOZTWoQkapLH2C1BbO6vX7Y1+6hTyfb4WtgBOH2M2hBOPUkaiYSUFhoR0XJ1xkAFHg== X-Received: by 2002:a17:906:4794:b0:aff:7429:d40f with SMTP id a640c23a62f3a-b01d8a322b9mr880289766b.4.1756759833266; Mon, 01 Sep 2025 13:50:33 -0700 (PDT) Received: from raven.intern.cm-ag (p200300dc6f1d0f00023064fffe740809.dip0.t-ipconnect.de. [2003:dc:6f1d:f00:230:64ff:fe74:809]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-afefcbd9090sm937339066b.69.2025.09.01.13.50.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 13:50:33 -0700 (PDT) From: Max Kellermann To: akpm@linux-foundation.org, david@redhat.com, axelrasmussen@google.com, yuanchu@google.com, willy@infradead.org, hughd@google.com, mhocko@suse.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org, lorenzo.stoakes@oracle.com, Liam.Howlett@oracle.com, vbabka@suse.cz, rppt@kernel.org, surenb@google.com, vishal.moola@gmail.com, linux@armlinux.org.uk, James.Bottomley@HansenPartnership.com, deller@gmx.de, agordeev@linux.ibm.com, gerald.schaefer@linux.ibm.com, hca@linux.ibm.com, gor@linux.ibm.com, borntraeger@linux.ibm.com, svens@linux.ibm.com, davem@davemloft.net, andreas@gaisler.com, dave.hansen@linux.intel.com, luto@kernel.org, peterz@infradead.org, tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, x86@kernel.org, hpa@zytor.com, chris@zankel.net, jcmvbkbc@gmail.com, viro@zeniv.linux.org.uk, brauner@kernel.org, jack@suse.cz, weixugc@google.com, baolin.wang@linux.alibaba.com, rientjes@google.com, shakeel.butt@linux.dev, max.kellermann@ionos.com, thuth@redhat.com, broonie@kernel.org, osalvador@suse.de, jfalempe@redhat.com, mpe@ellerman.id.au, nysal@linux.ibm.com, linux-arm-kernel@lists.infradead.org, linux-parisc@vger.kernel.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, linux-fsdevel@vger.kernel.org Subject: [PATCH v6 03/12] mm: constify zone related test/getter functions Date: Mon, 1 Sep 2025 22:50:12 +0200 Message-ID: <20250901205021.3573313-4-max.kellermann@ionos.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250901205021.3573313-1-max.kellermann@ionos.com> References: <20250901205021.3573313-1-max.kellermann@ionos.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" For improved const-correctness. We select certain test functions which either invoke each other, functions that are already const-ified, or no further functions. It is therefore relatively trivial to const-ify them, which provides a basis for further const-ification further up the call stack. Signed-off-by: Max Kellermann Reviewed-by: Vishal Moola (Oracle) Reviewed-by: Lorenzo Stoakes Acked-by: David Hildenbrand Acked-by: Mike Rapoport (Microsoft) Acked-by: Shakeel Butt Acked-by: Vlastimil Babka --- include/linux/mmzone.h | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h index f3272ef5131b..6c4eae96160d 100644 --- a/include/linux/mmzone.h +++ b/include/linux/mmzone.h @@ -1104,7 +1104,7 @@ static inline unsigned long promo_wmark_pages(const s= truct zone *z) return wmark_pages(z, WMARK_PROMO); } =20 -static inline unsigned long zone_managed_pages(struct zone *zone) +static inline unsigned long zone_managed_pages(const struct zone *zone) { return (unsigned long)atomic_long_read(&zone->managed_pages); } @@ -1128,12 +1128,12 @@ static inline bool zone_spans_pfn(const struct zone= *zone, unsigned long pfn) return zone->zone_start_pfn <=3D pfn && pfn < zone_end_pfn(zone); } =20 -static inline bool zone_is_initialized(struct zone *zone) +static inline bool zone_is_initialized(const struct zone *zone) { return zone->initialized; } =20 -static inline bool zone_is_empty(struct zone *zone) +static inline bool zone_is_empty(const struct zone *zone) { return zone->spanned_pages =3D=3D 0; } @@ -1273,7 +1273,7 @@ static inline bool folio_is_zone_movable(const struct= folio *folio) * Return true if [start_pfn, start_pfn + nr_pages) range has a non-empty * intersection with the given zone */ -static inline bool zone_intersects(struct zone *zone, +static inline bool zone_intersects(const struct zone *zone, unsigned long start_pfn, unsigned long nr_pages) { if (zone_is_empty(zone)) @@ -1581,12 +1581,12 @@ static inline int local_memory_node(int node_id) { = return node_id; }; #define zone_idx(zone) ((zone) - (zone)->zone_pgdat->node_zones) =20 #ifdef CONFIG_ZONE_DEVICE -static inline bool zone_is_zone_device(struct zone *zone) +static inline bool zone_is_zone_device(const struct zone *zone) { return zone_idx(zone) =3D=3D ZONE_DEVICE; } #else -static inline bool zone_is_zone_device(struct zone *zone) +static inline bool zone_is_zone_device(const struct zone *zone) { return false; } @@ -1598,19 +1598,19 @@ static inline bool zone_is_zone_device(struct zone = *zone) * populated_zone(). If the whole zone is reserved then we can easily * end up with populated_zone() && !managed_zone(). */ -static inline bool managed_zone(struct zone *zone) +static inline bool managed_zone(const struct zone *zone) { return zone_managed_pages(zone); } =20 /* Returns true if a zone has memory */ -static inline bool populated_zone(struct zone *zone) +static inline bool populated_zone(const struct zone *zone) { return zone->present_pages; } =20 #ifdef CONFIG_NUMA -static inline int zone_to_nid(struct zone *zone) +static inline int zone_to_nid(const struct zone *zone) { return zone->node; } @@ -1620,7 +1620,7 @@ static inline void zone_set_nid(struct zone *zone, in= t nid) zone->node =3D nid; } #else -static inline int zone_to_nid(struct zone *zone) +static inline int zone_to_nid(const struct zone *zone) { return 0; } @@ -1647,7 +1647,7 @@ static inline int is_highmem_idx(enum zone_type idx) * @zone: pointer to struct zone variable * Return: 1 for a highmem zone, 0 otherwise */ -static inline int is_highmem(struct zone *zone) +static inline int is_highmem(const struct zone *zone) { return is_highmem_idx(zone_idx(zone)); } @@ -1713,12 +1713,12 @@ static inline struct zone *zonelist_zone(struct zon= eref *zoneref) return zoneref->zone; } =20 -static inline int zonelist_zone_idx(struct zoneref *zoneref) +static inline int zonelist_zone_idx(const struct zoneref *zoneref) { return zoneref->zone_idx; } =20 -static inline int zonelist_node_idx(struct zoneref *zoneref) +static inline int zonelist_node_idx(const struct zoneref *zoneref) { return zone_to_nid(zoneref->zone); } @@ -2021,7 +2021,7 @@ static inline struct page *__section_mem_map_addr(str= uct mem_section *section) return (struct page *)map; } =20 -static inline int present_section(struct mem_section *section) +static inline int present_section(const struct mem_section *section) { return (section && (section->section_mem_map & SECTION_MARKED_PRESENT)); } @@ -2031,12 +2031,12 @@ static inline int present_section_nr(unsigned long = nr) return present_section(__nr_to_section(nr)); } =20 -static inline int valid_section(struct mem_section *section) +static inline int valid_section(const struct mem_section *section) { return (section && (section->section_mem_map & SECTION_HAS_MEM_MAP)); } =20 -static inline int early_section(struct mem_section *section) +static inline int early_section(const struct mem_section *section) { return (section && (section->section_mem_map & SECTION_IS_EARLY)); } @@ -2046,27 +2046,27 @@ static inline int valid_section_nr(unsigned long nr) return valid_section(__nr_to_section(nr)); } =20 -static inline int online_section(struct mem_section *section) +static inline int online_section(const struct mem_section *section) { return (section && (section->section_mem_map & SECTION_IS_ONLINE)); } =20 #ifdef CONFIG_ZONE_DEVICE -static inline int online_device_section(struct mem_section *section) +static inline int online_device_section(const struct mem_section *section) { unsigned long flags =3D SECTION_IS_ONLINE | SECTION_TAINT_ZONE_DEVICE; =20 return section && ((section->section_mem_map & flags) =3D=3D flags); } #else -static inline int online_device_section(struct mem_section *section) +static inline int online_device_section(const struct mem_section *section) { return 0; } #endif =20 #ifdef CONFIG_SPARSEMEM_VMEMMAP_PREINIT -static inline int preinited_vmemmap_section(struct mem_section *section) +static inline int preinited_vmemmap_section(const struct mem_section *sect= ion) { return (section && (section->section_mem_map & SECTION_IS_VMEMMAP_PREINIT)); @@ -2076,7 +2076,7 @@ void sparse_vmemmap_init_nid_early(int nid); void sparse_vmemmap_init_nid_late(int nid); =20 #else -static inline int preinited_vmemmap_section(struct mem_section *section) +static inline int preinited_vmemmap_section(const struct mem_section *sect= ion) { return 0; } --=20 2.47.2 From nobody Fri Oct 3 11:23:42 2025 Received: from mail-ej1-f54.google.com (mail-ej1-f54.google.com [209.85.218.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0543E27586E for ; Mon, 1 Sep 2025 20:50:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756759838; cv=none; b=CJGQkCkUEbtedRmqwejtfEG0ZM3yWJ+NCdx4hEmweIzRG3YYI1xF9nbeA5QWyfv07dOwCpzpzSx0CL7GVbfUNT2/nXIhToKq+PC0URTk+1NXrcS5QNbGYHcjjBRog8lSfGTe2YfydX0HuGpspHScy25R8LfsVy6WjNesFSTIk1I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756759838; c=relaxed/simple; bh=9ZBLOgc8o7e4sYGe9wP+1FqjAVbgCQ4ajZen8ILi1mU=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Sv6hh+5EDx2/1xG5gWiFjPtWqaS06PrJL8+OwKGPWkbFU3THg2lQpd1bDpljU8eRDecGVRt6thO/hnlJBckf+y1MdGBH8L84r04zrhZHbc/fd1HyUOMG9YxE56sRk+gj/zQr/hsAEcK3U5oVjC28Yc111Ksw+KIMQpSuAi/MWDg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=ionos.com; spf=pass smtp.mailfrom=ionos.com; dkim=pass (2048-bit key) header.d=ionos.com header.i=@ionos.com header.b=fd7uB6P5; arc=none smtp.client-ip=209.85.218.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=ionos.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ionos.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ionos.com header.i=@ionos.com header.b="fd7uB6P5" Received: by mail-ej1-f54.google.com with SMTP id a640c23a62f3a-afcb7ae31caso905450666b.3 for ; Mon, 01 Sep 2025 13:50:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ionos.com; s=google; t=1756759835; x=1757364635; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=DOUVRSUkKssTlOViJjAfm2Ry0I5gABWdPNOlGM2jpT8=; b=fd7uB6P54iPwC2UabKzsiHRweWKdRQtn3DyA4wJAfMScLZN1S+Cup8/pYYTAplSMEb oiBSDgN/cMndhVSnK3dy1F1xDzRmlHH4c+pwq64ndLkUHnyHTx8yv1/dfzMz3ypiPfn4 8UHqEA9DVSmFJ3D1GH+q+8zaqZoBGK01uE8ypp59GqicaNHlQRnIbnL3xuQLNvvPatap hJ9P0AdKWfhJjWVQvuXfj3mCv1DMb9NxwlVnYUV9Vzq9E09vInVSwjrAf6Q9VRmB9P6s RdfdiJFKP0QNJy+RQC9MFfF+tm0mX1+QjBw9kw0Ow79PUijkwu5E1KqjA6WhcmNf3ZG+ Tz7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756759835; x=1757364635; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=DOUVRSUkKssTlOViJjAfm2Ry0I5gABWdPNOlGM2jpT8=; b=OGCiHRFTGmMAF2n8nMCvExQnmLUX2uXOGim6CpUozwHYxMoOCFAXlpJdOX+L1JbNtg TtPdq3J4ShGf3ItCQhPSb6ArzJPjI5b+5CZTuvjcx7/YqKttEQVe2FqjWT+qRh0856+p IQrrL7BYM4yHcc5f/S1Kz1tFxJB63Ni7XfT4x1+Iyw+UqI6oOaIas1mJflH96WPqklE2 BG1m6SiaFjaX5rijkZY/ckxThvSS5gbIzIqruAGIlNolqShptCsFp5QGcY5k4rqCbsQd fQRq4NPMkmMIyw4bxMHbE4Vn5lVxjw4TXrll10IEjUb2G2/y+F1Byus7MeYU0QOm6jPx Ui9w== X-Forwarded-Encrypted: i=1; AJvYcCW7G7ZA+RiEZyf/9TSwGmoTdo6IWYnW9MUrj754zKOSL32U25oY+Z560CIXp5KhEnfaOs35yJm0WjewrDI=@vger.kernel.org X-Gm-Message-State: AOJu0YyN4YC9UcbXWyrSNI5t3UegMVg65F0EltOke3QMt/ESFt0QS1YN UZkYGXDi6TNyeUA4bv1+F+TRABTTJDcw5l/hsukkP9wgkkfqNH5GubyXE2MDbK162Z4= X-Gm-Gg: ASbGncs7uMbHg6rkkFXiFJzja79U7mldCYY81turpUnl2phN8Ifbhs9ElDQNEG6rH9Q IbL8E0b42auPW76efBSUW8azWmbi8DaQRkUpQERXxFUdmSjLjeci1VxrVJj8wFdVBXIrcWEABkH sqJeeuq14zG6yW5PgsEUX13AN3NExaPC4Y5fYlA6GmN6Q3HOHS9dwn74iSeaJ877eq8YbjXoooO JkmqF8jikk+MArwFvN+4vUd78YpUiIqGif7IVftECky6rsXDvyccxnfPX6FOTdJlKJmjeChEao5 Kpe3yulHCV3wy+SlXf2FmU5tOeoK8oIa3ZZN1T07w//HZNBU/9KF2SL2lBg+bQsQ86aF0AEO4W0 A0u7+QjjtjbPw9qJVDcPAazlCYd339DeyWmmzdBmFfUvqjvsnjEkrQVQ8rJVHz3YqG41UxqFeH0 JwU6Lpp/pisXFj4ahH+XxO+Q+QnymQVT3M X-Google-Smtp-Source: AGHT+IGigtKDXFUmdSAlFGcDTy1NmHrauWomJBx5FIkz9t/2ArUf43T05qd7+gJYKJea9RCwhs03Aw== X-Received: by 2002:a17:907:e8f:b0:afe:8f28:fd5 with SMTP id a640c23a62f3a-b01d9719057mr990403866b.41.1756759835180; Mon, 01 Sep 2025 13:50:35 -0700 (PDT) Received: from raven.intern.cm-ag (p200300dc6f1d0f00023064fffe740809.dip0.t-ipconnect.de. [2003:dc:6f1d:f00:230:64ff:fe74:809]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-afefcbd9090sm937339066b.69.2025.09.01.13.50.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 13:50:34 -0700 (PDT) From: Max Kellermann To: akpm@linux-foundation.org, david@redhat.com, axelrasmussen@google.com, yuanchu@google.com, willy@infradead.org, hughd@google.com, mhocko@suse.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org, lorenzo.stoakes@oracle.com, Liam.Howlett@oracle.com, vbabka@suse.cz, rppt@kernel.org, surenb@google.com, vishal.moola@gmail.com, linux@armlinux.org.uk, James.Bottomley@HansenPartnership.com, deller@gmx.de, agordeev@linux.ibm.com, gerald.schaefer@linux.ibm.com, hca@linux.ibm.com, gor@linux.ibm.com, borntraeger@linux.ibm.com, svens@linux.ibm.com, davem@davemloft.net, andreas@gaisler.com, dave.hansen@linux.intel.com, luto@kernel.org, peterz@infradead.org, tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, x86@kernel.org, hpa@zytor.com, chris@zankel.net, jcmvbkbc@gmail.com, viro@zeniv.linux.org.uk, brauner@kernel.org, jack@suse.cz, weixugc@google.com, baolin.wang@linux.alibaba.com, rientjes@google.com, shakeel.butt@linux.dev, max.kellermann@ionos.com, thuth@redhat.com, broonie@kernel.org, osalvador@suse.de, jfalempe@redhat.com, mpe@ellerman.id.au, nysal@linux.ibm.com, linux-arm-kernel@lists.infradead.org, linux-parisc@vger.kernel.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, linux-fsdevel@vger.kernel.org Subject: [PATCH v6 04/12] fs: constify mapping related test functions for improved const-correctness Date: Mon, 1 Sep 2025 22:50:13 +0200 Message-ID: <20250901205021.3573313-5-max.kellermann@ionos.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250901205021.3573313-1-max.kellermann@ionos.com> References: <20250901205021.3573313-1-max.kellermann@ionos.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" We select certain test functions which either invoke each other, functions that are already const-ified, or no further functions. It is therefore relatively trivial to const-ify them, which provides a basis for further const-ification further up the call stack. Signed-off-by: Max Kellermann Reviewed-by: Vishal Moola (Oracle) Reviewed-by: Lorenzo Stoakes Acked-by: David Hildenbrand Acked-by: Mike Rapoport (Microsoft) Acked-by: Shakeel Butt Acked-by: Vlastimil Babka Reviewed-by: Christian Brauner Reviewed-by: Jan Kara --- include/linux/fs.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/include/linux/fs.h b/include/linux/fs.h index 3b9f54446db0..0b43edb33be2 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -537,7 +537,7 @@ struct address_space { /* * Returns true if any of the pages in the mapping are marked with the tag. */ -static inline bool mapping_tagged(struct address_space *mapping, xa_mark_t= tag) +static inline bool mapping_tagged(const struct address_space *mapping, xa_= mark_t tag) { return xa_marked(&mapping->i_pages, tag); } @@ -585,7 +585,7 @@ static inline void i_mmap_assert_write_locked(struct ad= dress_space *mapping) /* * Might pages of this file be mapped into userspace? */ -static inline int mapping_mapped(struct address_space *mapping) +static inline int mapping_mapped(const struct address_space *mapping) { return !RB_EMPTY_ROOT(&mapping->i_mmap.rb_root); } @@ -599,7 +599,7 @@ static inline int mapping_mapped(struct address_space *= mapping) * If i_mmap_writable is negative, no new writable mappings are allowed. Y= ou * can only deny writable mappings, if none exists right now. */ -static inline int mapping_writably_mapped(struct address_space *mapping) +static inline int mapping_writably_mapped(const struct address_space *mapp= ing) { return atomic_read(&mapping->i_mmap_writable) > 0; } --=20 2.47.2 From nobody Fri Oct 3 11:23:42 2025 Received: from mail-ej1-f50.google.com (mail-ej1-f50.google.com [209.85.218.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CA98B2773EF for ; Mon, 1 Sep 2025 20:50:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756759840; cv=none; b=elFYOdSBOLnUb9Inwu01wg1Wb+NmHuYE4G65BHoJLRzhcEFqYgXzw07sr/hQlxKgos3jm/0lGuGm96ous7d/jBoqu/d5OdFvr4jkKggZKWapcEKxVVDNmC6NlmESyY2ySQUzK/MS1qir3pTPZgf8wTVBokj+S8ax/ZzQFfuPWpE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756759840; c=relaxed/simple; bh=pIfWjTspfVpzMSCvftG/V3B9Wm60B/72pG+k5Selb38=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=UNWjhpkOStiJbXliEIm3e71gdfM0jJXnQKzf/Ob31i6e2rAavsrAZoEPvdKDjhJwmTO9+IOeBOUfilgqg1PbUP5yM1Q4oSj+Lv2D40s3ZYBtyNy4sgKIigXC9tJLASBfEGsZSFtLqYLHFYo7rON9/y9U9kw6e8fDQDrZ1Q3ZWz8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=ionos.com; spf=pass smtp.mailfrom=ionos.com; dkim=pass (2048-bit key) header.d=ionos.com header.i=@ionos.com header.b=WgByGC6N; arc=none smtp.client-ip=209.85.218.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=ionos.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ionos.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ionos.com header.i=@ionos.com header.b="WgByGC6N" Received: by mail-ej1-f50.google.com with SMTP id a640c23a62f3a-affc2eb83c5so413222366b.2 for ; Mon, 01 Sep 2025 13:50:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ionos.com; s=google; t=1756759837; x=1757364637; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=1NuH6wEtYyVWN8h/tjwWnU8YD95rrkeNOHDYWS/pAsg=; b=WgByGC6NSlJR76DFMsCh3TbOuWDHYmmut9svV5zqWVLCNb2irhPSefTDsy3Fgt1xAe /qZFWmgwyplyxGVhxeJBKnndKGspwrntEcGMqeGDtGCZiK19PtNEAkGkQKdvO7vKZCh2 UO9hew9rsRZXQ0fjM5K1UJDO/+PYrxysRjn8132+uVCHCJ0H7R37uyX9DlAEniWYoHAp pdvbi0pcxU7/l9sV/Q6GcEh1iPXnejY6x/AQ8aHXUGQfKEFSKFk4wrGyyVj/VqetKIIj prE+bb+OrNfy+D9+paZyG3U6vLfEfQbVbzKBUM2Jva+/Mmmy91D3nJOQQmemKZ02jknX oYcg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756759837; x=1757364637; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=1NuH6wEtYyVWN8h/tjwWnU8YD95rrkeNOHDYWS/pAsg=; b=CHR400TfaysEigFGVFWqkjttyvM88ZDM5tPawGIzBIksi/PIO0ne+qzK4jOrOSnyPt gW+WAz2q+uPTirAlT3XDiGUq4eo8JWdDzT/0u50A1uXc0Hha+jIpiOdt4YVYnFS79xo3 lwFSp6ZQhp6n7RBmI0qGdkfbq9VFfz1vhE2WkshYwETYFHwSVlnYRcZJsAsXNZV/W+PR LwNhZuaw2wAR7L8hnzj0CMQ99OkgBF3PzH4Tp0GfzLpn4EcQDyl7BqtwE9OL6VKYNI1V JjyGYQVeT9Fio4j3XRjD1kcRd+XXjfg72u0KdOOW4ey3LYSSLw1yrezrOImYFL7Vuz02 RLpQ== X-Forwarded-Encrypted: i=1; AJvYcCUdmABPajoXEFxLH8z0+79n776WB6oQuoGzZnn4kMaUpQv43vtygGdEP/o+u+c5PH8qk8mfS6nWjM7Jikw=@vger.kernel.org X-Gm-Message-State: AOJu0YxllHyLzurYQ7H8h+wSsNJumiB+o3hLxJ1XtCtYOPgfIthvezrP RZwMvqxT159giCqIT0+U3Q6hkevfXfs9Qd1qnVTZxpziir+SXqMNybo+XRBjd7S/8gg= X-Gm-Gg: ASbGncsiJpZczswF+QuJKpFH6SyEwfpcQ0AF2aTx4vEZSz7RskSgSdLNf1VUE3r100t +pW9m8T+kqkWtlmA0cyqR6EAIXmXf7JjzQjvKZIEjlw7jLGH7jXaomZxFH/x4fNpY0Al5DpC7Ea X9/0peuV22XtbDm6kItDwx7d1Uc0xtJzJ/wBbrx9QHz6UKgYZ847SjJ1U4hAQfPgPuQTmd1wrM9 s3ypOlNfH/FhB8Pfl6dhkELwzYNYLxKDdw9RHWRuSPuMIq9aUHSkjATl8P3koKgC6GifU4H8aBi kA8heZ0BLtf8xhflsyDbHhNye58H9Fy7ZbfJ14dw/FlkhfPJnFo1no/tDCraTO7ETF1AoA/3UZf Br5Lqw6eoM121+x51EVGaz3omQFawrbP7holKu2HhnMjEsd6CNRqq4fg+c7tUQ9rdiWQCVvlopG vwzLq9GHmFw5Lta5ezOkzq8Q== X-Google-Smtp-Source: AGHT+IFXutjj9GtlvsHvyB1kBP2ci7mQOIWVVvptrXf9bm8LYmlGCi75h3LAGpjp/G/Rnzqw/keEdA== X-Received: by 2002:a17:907:3e89:b0:af9:e1f0:cd30 with SMTP id a640c23a62f3a-b01df53b7c4mr910004866b.60.1756759837088; Mon, 01 Sep 2025 13:50:37 -0700 (PDT) Received: from raven.intern.cm-ag (p200300dc6f1d0f00023064fffe740809.dip0.t-ipconnect.de. [2003:dc:6f1d:f00:230:64ff:fe74:809]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-afefcbd9090sm937339066b.69.2025.09.01.13.50.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 13:50:36 -0700 (PDT) From: Max Kellermann To: akpm@linux-foundation.org, david@redhat.com, axelrasmussen@google.com, yuanchu@google.com, willy@infradead.org, hughd@google.com, mhocko@suse.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org, lorenzo.stoakes@oracle.com, Liam.Howlett@oracle.com, vbabka@suse.cz, rppt@kernel.org, surenb@google.com, vishal.moola@gmail.com, linux@armlinux.org.uk, James.Bottomley@HansenPartnership.com, deller@gmx.de, agordeev@linux.ibm.com, gerald.schaefer@linux.ibm.com, hca@linux.ibm.com, gor@linux.ibm.com, borntraeger@linux.ibm.com, svens@linux.ibm.com, davem@davemloft.net, andreas@gaisler.com, dave.hansen@linux.intel.com, luto@kernel.org, peterz@infradead.org, tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, x86@kernel.org, hpa@zytor.com, chris@zankel.net, jcmvbkbc@gmail.com, viro@zeniv.linux.org.uk, brauner@kernel.org, jack@suse.cz, weixugc@google.com, baolin.wang@linux.alibaba.com, rientjes@google.com, shakeel.butt@linux.dev, max.kellermann@ionos.com, thuth@redhat.com, broonie@kernel.org, osalvador@suse.de, jfalempe@redhat.com, mpe@ellerman.id.au, nysal@linux.ibm.com, linux-arm-kernel@lists.infradead.org, linux-parisc@vger.kernel.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, linux-fsdevel@vger.kernel.org Subject: [PATCH v6 05/12] mm: constify process_shares_mm() for improved const-correctness Date: Mon, 1 Sep 2025 22:50:14 +0200 Message-ID: <20250901205021.3573313-6-max.kellermann@ionos.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250901205021.3573313-1-max.kellermann@ionos.com> References: <20250901205021.3573313-1-max.kellermann@ionos.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" This function only reads from the pointer arguments. Local (loop) variables are also annotated with `const` to clarify that these will not be written to. Signed-off-by: Max Kellermann Reviewed-by: Lorenzo Stoakes Acked-by: David Hildenbrand Acked-by: Mike Rapoport (Microsoft) Acked-by: Shakeel Butt Acked-by: Vlastimil Babka --- include/linux/mm.h | 2 +- mm/oom_kill.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index 18deb14cb1f5..f70c6b4d5f80 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -3840,7 +3840,7 @@ static inline int in_gate_area(struct mm_struct *mm, = unsigned long addr) } #endif /* __HAVE_ARCH_GATE_AREA */ =20 -extern bool process_shares_mm(struct task_struct *p, struct mm_struct *mm); +bool process_shares_mm(const struct task_struct *p, const struct mm_struct= *mm); =20 void drop_slab(void); =20 diff --git a/mm/oom_kill.c b/mm/oom_kill.c index 17650f0b516e..58bd4cf71d52 100644 --- a/mm/oom_kill.c +++ b/mm/oom_kill.c @@ -490,12 +490,12 @@ static bool oom_killer_disabled __read_mostly; * task's threads: if one of those is using this mm then this task was also * using it. */ -bool process_shares_mm(struct task_struct *p, struct mm_struct *mm) +bool process_shares_mm(const struct task_struct *p, const struct mm_struct= *mm) { - struct task_struct *t; + const struct task_struct *t; =20 for_each_thread(p, t) { - struct mm_struct *t_mm =3D READ_ONCE(t->mm); + const struct mm_struct *t_mm =3D READ_ONCE(t->mm); if (t_mm) return t_mm =3D=3D mm; } --=20 2.47.2 From nobody Fri Oct 3 11:23:42 2025 Received: from mail-ej1-f47.google.com (mail-ej1-f47.google.com [209.85.218.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D0CC0278161 for ; Mon, 1 Sep 2025 20:50:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756759842; cv=none; b=EWLCWu2ymLgUAHwcAJiLGcsK3JPWxgW64+6juBhEmMKtJGzXkdoCE0tmVh+FbbXpRsZC3eH20i3K099sACGmncvhvGw5FsUu9+Z2hgbM7RpXrXAssBJHl8zyyLg1FsGBvdHyByJEQd357Es78iZKI19RstCd8tClukhjyYk4u2k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756759842; c=relaxed/simple; bh=rDmpfZbO2s2x50UxmePctxd+ld3/Z2MAdzz2RJEbNaI=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=A0JwW/rTLO3W9tNzbQpEM8gV53nmAPRge//j1Ki005Co+NTSuZZdZQC5CclXtN0FYUGQhtfRovJqrmEM0MhX0UN4/mwV49AsYwF+b2+ga2YyQt4/WJ6vBCki03HM4iNMyC0vfW/eZ9Kdt1FKVJ2OC77aoWSomDLkwYaIH3tuz8k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=ionos.com; spf=pass smtp.mailfrom=ionos.com; dkim=pass (2048-bit key) header.d=ionos.com header.i=@ionos.com header.b=Lq7okukd; arc=none smtp.client-ip=209.85.218.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=ionos.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ionos.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ionos.com header.i=@ionos.com header.b="Lq7okukd" Received: by mail-ej1-f47.google.com with SMTP id a640c23a62f3a-b0225483ca0so384264766b.2 for ; Mon, 01 Sep 2025 13:50:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ionos.com; s=google; t=1756759839; x=1757364639; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=sn4h0BpPfxBDaFwO8h+hIU8dGesIzlZ2oiTQdwK6a9M=; b=Lq7okukdfOBSWr4CffmCP1G03PwNjT8b5lBzoFt8S1FlI8bEzAQ/sxIRecDtV4kqkg RITlIccDuo1La3TdCenYv5bcUP+yVIWz1rgQ/Xl0zQbuIqnsUSrOUO0RQQu0PFW0TOkG 08PZZzGA4rdYmutoazD+LH4/DMQgDNFx+syh9dYuiNB+HopFS7b3zSGAIC/+bAUYbg9x SqdJJkDTP5E0GNfnBaLcgWs8axFmCwb7Rxt9Cf0xEB9jtY5Qcc6TtDIPmMdPJl8sj2Tu eNF78I2KVdaWTKK5o2YojxVUvJe4UwEH5foo86XmnNRWn4dXUgCPnwwfbEFpABW9fXyk ch1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756759839; x=1757364639; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=sn4h0BpPfxBDaFwO8h+hIU8dGesIzlZ2oiTQdwK6a9M=; b=daxU7+DPmloOAVIAS7B7sQ66gzvyRPOrH5yVNVA780g7qMm62zWXz0FsAOY80ph8ST nUZnkJ4DIknvpuJkYQtHkPx2Fe9ibU2B0EnvOZRGGpl/OJYpkkjQplmRl0wpa7ReX58t s73T6Ar5fAykoniPRgRjmFvEnCptZDlRFf2C1DABfTRWd6qIDxpLJ3AGJvQ0jXhwa7vB r/ukZXMKp87wbHM+QY2dkW6KQ9oC0u7M/m1DJwnwAk+WmRJrETfbrfDNhPE6R4m76Rw4 JFMUag47gSjhjt75DkKYV726IOQgsMH7IUmGH+gEWaBMdkkKBMHPb9GMT4Ayu4367U0p pUjQ== X-Forwarded-Encrypted: i=1; AJvYcCWgDO8+xoF7LMfr3wzr9/vqR8IH1T/KmDu/ad7Vlqupez9FFp16tmLUXLi8AXuOeTR8pkVuyAi5JrsdOS8=@vger.kernel.org X-Gm-Message-State: AOJu0YxqnNKt+g8gjcTUyviW6cvZSlJEFxgEIyufPOFHo3IVFvKSVGkZ cJpT3ARlbKRZLuf2PTGXNG8pQY9rJmvJVvcLp52Xpadkj3dzmfDxHgwxjVLG8mHnydE= X-Gm-Gg: ASbGncv9FEGAIyBPx0v7FTonuZqmegLrY338/6ndsUdjLYjy15HZb8r1VpNfbFfBDKx z6RXVyS+G51x+fo3uzAiySFG3XpxRhq2rQutaxAqXS5FIo2sB9yyAuzMkZGap6eKqKa44DWoz27 HVbZlF0UAMWlVPlbjohMUlY92xpi56HbyX9eOmEK6opHTyDm5x1mr/IgbNhR3Kwb5v0gdNm21iC m+0oxtNAJq+aVya7uQTAj8kRuxOIPjI4odLhwRgFZM8fhAvNrkCNaRw1DgbVcR3Xl38TUIWeaaH hAQcP1DDZ2jYoXMXVPAGKNHBAtWPRgw7vchz2F2jiJW2n4t/25ZsjRkMwJ58XjX0YzSptKKSWI0 U16veWNOsLfmCgyNkm40oMXxA78pWHReDUEp/Rsm23DjWMhHD8NzRo5EtdZTHPV0FqmKEWX0Jrh Zprh4utjNcuP6FyUWyNq/wLA== X-Google-Smtp-Source: AGHT+IH0D71brvthuz6NiuqLrZIK2MWi3wUSZ97rcXr8aVNySfvYxdzD2MYQW/mxQZhh964lwy06dA== X-Received: by 2002:a17:906:ee85:b0:afe:9e58:7550 with SMTP id a640c23a62f3a-b01d8a7131dmr869222766b.19.1756759839098; Mon, 01 Sep 2025 13:50:39 -0700 (PDT) Received: from raven.intern.cm-ag (p200300dc6f1d0f00023064fffe740809.dip0.t-ipconnect.de. [2003:dc:6f1d:f00:230:64ff:fe74:809]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-afefcbd9090sm937339066b.69.2025.09.01.13.50.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 13:50:38 -0700 (PDT) From: Max Kellermann To: akpm@linux-foundation.org, david@redhat.com, axelrasmussen@google.com, yuanchu@google.com, willy@infradead.org, hughd@google.com, mhocko@suse.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org, lorenzo.stoakes@oracle.com, Liam.Howlett@oracle.com, vbabka@suse.cz, rppt@kernel.org, surenb@google.com, vishal.moola@gmail.com, linux@armlinux.org.uk, James.Bottomley@HansenPartnership.com, deller@gmx.de, agordeev@linux.ibm.com, gerald.schaefer@linux.ibm.com, hca@linux.ibm.com, gor@linux.ibm.com, borntraeger@linux.ibm.com, svens@linux.ibm.com, davem@davemloft.net, andreas@gaisler.com, dave.hansen@linux.intel.com, luto@kernel.org, peterz@infradead.org, tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, x86@kernel.org, hpa@zytor.com, chris@zankel.net, jcmvbkbc@gmail.com, viro@zeniv.linux.org.uk, brauner@kernel.org, jack@suse.cz, weixugc@google.com, baolin.wang@linux.alibaba.com, rientjes@google.com, shakeel.butt@linux.dev, max.kellermann@ionos.com, thuth@redhat.com, broonie@kernel.org, osalvador@suse.de, jfalempe@redhat.com, mpe@ellerman.id.au, nysal@linux.ibm.com, linux-arm-kernel@lists.infradead.org, linux-parisc@vger.kernel.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, linux-fsdevel@vger.kernel.org Subject: [PATCH v6 06/12] mm, s390: constify mapping related test/getter functions Date: Mon, 1 Sep 2025 22:50:15 +0200 Message-ID: <20250901205021.3573313-7-max.kellermann@ionos.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250901205021.3573313-1-max.kellermann@ionos.com> References: <20250901205021.3573313-1-max.kellermann@ionos.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" For improved const-correctness. We select certain test functions which either invoke each other, functions that are already const-ified, or no further functions. It is therefore relatively trivial to const-ify them, which provides a basis for further const-ification further up the call stack. (Even though seemingly unrelated, this also constifies the pointer parameter of mmap_is_legacy() in arch/s390/mm/mmap.c because a copy of the function exists in mm/util.c.) Signed-off-by: Max Kellermann Reviewed-by: Vishal Moola (Oracle) Acked-by: David Hildenbrand Acked-by: Mike Rapoport (Microsoft) Acked-by: Shakeel Butt Acked-by: Vlastimil Babka Reviewed-by: Lorenzo Stoakes --- arch/s390/mm/mmap.c | 2 +- include/linux/mm.h | 6 +++--- include/linux/pagemap.h | 2 +- mm/util.c | 10 +++++----- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/arch/s390/mm/mmap.c b/arch/s390/mm/mmap.c index 547104ccc22a..e188cb6d4946 100644 --- a/arch/s390/mm/mmap.c +++ b/arch/s390/mm/mmap.c @@ -27,7 +27,7 @@ static unsigned long stack_maxrandom_size(void) return STACK_RND_MASK << PAGE_SHIFT; } =20 -static inline int mmap_is_legacy(struct rlimit *rlim_stack) +static inline int mmap_is_legacy(const struct rlimit *rlim_stack) { if (current->personality & ADDR_COMPAT_LAYOUT) return 1; diff --git a/include/linux/mm.h b/include/linux/mm.h index f70c6b4d5f80..23864c3519d6 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -986,7 +986,7 @@ static inline bool vma_is_shmem(const struct vm_area_st= ruct *vma) { return false static inline bool vma_is_anon_shmem(const struct vm_area_struct *vma) { r= eturn false; } #endif =20 -int vma_is_stack_for_current(struct vm_area_struct *vma); +int vma_is_stack_for_current(const struct vm_area_struct *vma); =20 /* flush_tlb_range() takes a vma, not a mm, and can care about flags */ #define TLB_FLUSH_VMA(mm,flags) { .vm_mm =3D (mm), .vm_flags =3D (flags) } @@ -2585,7 +2585,7 @@ void folio_add_pin(struct folio *folio); =20 int account_locked_vm(struct mm_struct *mm, unsigned long pages, bool inc); int __account_locked_vm(struct mm_struct *mm, unsigned long pages, bool in= c, - struct task_struct *task, bool bypass_rlim); + const struct task_struct *task, bool bypass_rlim); =20 struct kvec; struct page *get_dump_page(unsigned long addr, int *locked); @@ -3348,7 +3348,7 @@ void anon_vma_interval_tree_verify(struct anon_vma_ch= ain *node); avc; avc =3D anon_vma_interval_tree_iter_next(avc, start, last)) =20 /* mmap.c */ -extern int __vm_enough_memory(struct mm_struct *mm, long pages, int cap_sy= s_admin); +extern int __vm_enough_memory(const struct mm_struct *mm, long pages, int = cap_sys_admin); extern int insert_vm_struct(struct mm_struct *, struct vm_area_struct *); extern void exit_mmap(struct mm_struct *); bool mmap_read_lock_maybe_expand(struct mm_struct *mm, struct vm_area_stru= ct *vma, diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h index 1d3803c397e9..185644e288ea 100644 --- a/include/linux/pagemap.h +++ b/include/linux/pagemap.h @@ -551,7 +551,7 @@ static inline void filemap_nr_thps_dec(struct address_s= pace *mapping) #endif } =20 -struct address_space *folio_mapping(struct folio *); +struct address_space *folio_mapping(const struct folio *folio); =20 /** * folio_flush_mapping - Find the file mapping this folio belongs to. diff --git a/mm/util.c b/mm/util.c index d235b74f7aff..241d2eaf26ca 100644 --- a/mm/util.c +++ b/mm/util.c @@ -315,7 +315,7 @@ void *memdup_user_nul(const void __user *src, size_t le= n) EXPORT_SYMBOL(memdup_user_nul); =20 /* Check if the vma is being used as a stack by this task */ -int vma_is_stack_for_current(struct vm_area_struct *vma) +int vma_is_stack_for_current(const struct vm_area_struct *vma) { struct task_struct * __maybe_unused t =3D current; =20 @@ -410,7 +410,7 @@ unsigned long arch_mmap_rnd(void) return rnd << PAGE_SHIFT; } =20 -static int mmap_is_legacy(struct rlimit *rlim_stack) +static int mmap_is_legacy(const struct rlimit *rlim_stack) { if (current->personality & ADDR_COMPAT_LAYOUT) return 1; @@ -504,7 +504,7 @@ EXPORT_SYMBOL_IF_KUNIT(arch_pick_mmap_layout); * * -ENOMEM if RLIMIT_MEMLOCK would be exceeded. */ int __account_locked_vm(struct mm_struct *mm, unsigned long pages, bool in= c, - struct task_struct *task, bool bypass_rlim) + const struct task_struct *task, bool bypass_rlim) { unsigned long locked_vm, limit; int ret =3D 0; @@ -688,7 +688,7 @@ struct anon_vma *folio_anon_vma(const struct folio *fol= io) * You can call this for folios which aren't in the swap cache or page * cache and it will return NULL. */ -struct address_space *folio_mapping(struct folio *folio) +struct address_space *folio_mapping(const struct folio *folio) { struct address_space *mapping; =20 @@ -926,7 +926,7 @@ EXPORT_SYMBOL_GPL(vm_memory_committed); * Note this is a helper function intended to be used by LSMs which * wish to use this logic. */ -int __vm_enough_memory(struct mm_struct *mm, long pages, int cap_sys_admin) +int __vm_enough_memory(const struct mm_struct *mm, long pages, int cap_sys= _admin) { long allowed; unsigned long bytes_failed; --=20 2.47.2 From nobody Fri Oct 3 11:23:42 2025 Received: from mail-ed1-f49.google.com (mail-ed1-f49.google.com [209.85.208.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D31C2279DC4 for ; Mon, 1 Sep 2025 20:50:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756759844; cv=none; b=NkJt6hA1PXTR+yEkeiKcWf8+9RzxwQSR80ogcr+4APmKRmh5Np4suZVBNpiK2l3Yk9IkBe1Vn1N7inbvScfpa+cyJAx1unKKPzZ9bAU1ZRnUz+wZzRVJGKmnsR2sS3wuoLrFN0qZYrDjVGCiOuzi1zGC9J1U4fDTn3hoxckGkFM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756759844; c=relaxed/simple; bh=mdsrJUeGrkHnP8zL/eyQeyjJ3gnG2ENBLTOi4VtzzWI=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qiNlQgZQbqFJ3tkpsJ+TPYEoACw2BVXxyeE8ugOltMD/ytfu/tAFYvdI1thLR/cs5g9Vx0hE/axHeA+JnaUR0UnbzA1BZAUlF3D2pU8sIjOKSKMkSLhvaLHcOKGUnlOPSnIMSXMiNkNbpEohIGpVZm9bzXMQPSqCMpyPY4wT+9A= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=ionos.com; spf=pass smtp.mailfrom=ionos.com; dkim=pass (2048-bit key) header.d=ionos.com header.i=@ionos.com header.b=RqAwSCd1; arc=none smtp.client-ip=209.85.208.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=ionos.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ionos.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ionos.com header.i=@ionos.com header.b="RqAwSCd1" Received: by mail-ed1-f49.google.com with SMTP id 4fb4d7f45d1cf-619487c8865so10050679a12.1 for ; Mon, 01 Sep 2025 13:50:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ionos.com; s=google; t=1756759841; x=1757364641; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=JbC8N+XiHIHVwpnYZGh3ddN7VzXCXgVoQGtIXVqNTy8=; b=RqAwSCd1/MuaH+RNfTQfJif/LUGNnb9+rRIeKmCE5gnIsAPL/QtpEw9jteEXBRg05P QbqDNV6IDuvYXvEzLhen9SU34igihvQEZEVcHV3cg5KCfbCpfT01SiZXYWFGNTBKD7xM Py+HlZzjhr+6Po5dPKpWKUvZVpEKbiNwEDzMdqEih1P1yiS9Y6eA277wuTIE9H++kXb0 sn8hJrKBzDp7bK4ffQ37BpnMvwqA5BXpj/l5yO4UZ38YOGd+PD0l7R0Xp+sIaPsYntod zGt0Dtzei/Z6r8vFxt4C8/yDUuBS0WOPJdI0C/ypqTRxoaxz27nONjh0FPC+BdRsM+Wn qRzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756759841; x=1757364641; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=JbC8N+XiHIHVwpnYZGh3ddN7VzXCXgVoQGtIXVqNTy8=; b=peJmFxI1eiUosR6bTVSqUAcTTuqEPz0cqh30Om4FICJBnD1jYAOSwJ0gqaJJedHhTQ kKDr1Km5vk3g3hTBc5xYTxtfBJ1mvJCBQVJqxqj5PhaCydknBgs8tqjxwItVw6u/VHRX 9g79uislwgE/LeCeIlWwhfQnBg4GEM+3Iiqwx27l1wGr+/KXc4Zh2l3LeEZK8ve01YKV jhH/UFdHW86oSdKczoPJHpoQi6QLmN1URslF6fDjG1HzGIstySvYeCkTBUnb64HeLHtc KRlYFJZNor79QLzR6cD1ddlU2cSrU7tP7nInCzYKnUYVy0uPrNe9YXhapgHwTylHhxIz g0yg== X-Forwarded-Encrypted: i=1; AJvYcCV5gWrTG7OKl7cqWwFHdflQNXzu718xmzQgBpS9FRa8yOlBtf4flTk1HUGmnSAREg+gSGwYteIuciI8YOI=@vger.kernel.org X-Gm-Message-State: AOJu0YxVxaanTLd3PUTZ8yZTL336oqq8CxINqythtGIXjmbYqee/YR1n aP6hhYh8whQ4jDfF84WgHltEaWgDrwbtMvpUyueC5VSUyN4ovp2cW1xmhVWV/kD5uB0= X-Gm-Gg: ASbGnctkqygVVIXGYWinNscyCOcRjp35A1Bwzl7Z6BH3s25aT4dR2a6Gx3ThpkFMUfZ 2oDSoTfPy2SghP66gqtLhUS5QaX1QYPjAPCtOcwaxmVjqTMC8iC4GOInHbN7cCKq5qiTaKrX2Ux R8yLltTfMqm/JEsKvmKkaNz7Eut+if+IiL3DK0hsKMxjJqfSYMo2XsYnfyif//q3FE56NUXmL+S 2ZRrUrQfqpj8smTJmOFbho27duLR0cQG3gMqh+Q6VCpWY5YWW5PJhCiHTMVq2h1+aDNNGv20cGu 08QNF2lJBHTG2K19v90GwdRHpmp226dUZCTipbk+3Xe8lu9qMLF0hjYv0nvp7ppzymNb2N5D+nP JjtTMWpkdFNzQx3Z/Xcp5Ht9f1FnvObkZ+/IM2I6GtQpNj5rjR8M0vVPjMsqMaRqmd+Fh4G/izS 8hZRnorUEBEHKnDAyVkVuykFMPVHW2Ph3C X-Google-Smtp-Source: AGHT+IFaWDHYij5j1CBdsPx53clPCy+ttl9kO3s+0ZW4mKhtLHQkGphieDUSAGfH3AkYqVOXY7BH3Q== X-Received: by 2002:a17:907:6d28:b0:af9:21ed:6ebe with SMTP id a640c23a62f3a-b01d9754485mr912367266b.21.1756759841055; Mon, 01 Sep 2025 13:50:41 -0700 (PDT) Received: from raven.intern.cm-ag (p200300dc6f1d0f00023064fffe740809.dip0.t-ipconnect.de. [2003:dc:6f1d:f00:230:64ff:fe74:809]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-afefcbd9090sm937339066b.69.2025.09.01.13.50.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 13:50:40 -0700 (PDT) From: Max Kellermann To: akpm@linux-foundation.org, david@redhat.com, axelrasmussen@google.com, yuanchu@google.com, willy@infradead.org, hughd@google.com, mhocko@suse.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org, lorenzo.stoakes@oracle.com, Liam.Howlett@oracle.com, vbabka@suse.cz, rppt@kernel.org, surenb@google.com, vishal.moola@gmail.com, linux@armlinux.org.uk, James.Bottomley@HansenPartnership.com, deller@gmx.de, agordeev@linux.ibm.com, gerald.schaefer@linux.ibm.com, hca@linux.ibm.com, gor@linux.ibm.com, borntraeger@linux.ibm.com, svens@linux.ibm.com, davem@davemloft.net, andreas@gaisler.com, dave.hansen@linux.intel.com, luto@kernel.org, peterz@infradead.org, tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, x86@kernel.org, hpa@zytor.com, chris@zankel.net, jcmvbkbc@gmail.com, viro@zeniv.linux.org.uk, brauner@kernel.org, jack@suse.cz, weixugc@google.com, baolin.wang@linux.alibaba.com, rientjes@google.com, shakeel.butt@linux.dev, max.kellermann@ionos.com, thuth@redhat.com, broonie@kernel.org, osalvador@suse.de, jfalempe@redhat.com, mpe@ellerman.id.au, nysal@linux.ibm.com, linux-arm-kernel@lists.infradead.org, linux-parisc@vger.kernel.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, linux-fsdevel@vger.kernel.org Subject: [PATCH v6 07/12] parisc: constify mmap_upper_limit() parameter Date: Mon, 1 Sep 2025 22:50:16 +0200 Message-ID: <20250901205021.3573313-8-max.kellermann@ionos.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250901205021.3573313-1-max.kellermann@ionos.com> References: <20250901205021.3573313-1-max.kellermann@ionos.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" For improved const-correctness. This piece is necessary to make the `rlim_stack` parameter to mmap_base() const. Signed-off-by: Max Kellermann Reviewed-by: Vishal Moola (Oracle) Acked-by: David Hildenbrand Acked-by: Mike Rapoport (Microsoft) Acked-by: Shakeel Butt Acked-by: Vlastimil Babka Reviewed-by: Lorenzo Stoakes --- arch/parisc/include/asm/processor.h | 2 +- arch/parisc/kernel/sys_parisc.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/parisc/include/asm/processor.h b/arch/parisc/include/asm/= processor.h index 4c14bde39aac..dd0b5e199559 100644 --- a/arch/parisc/include/asm/processor.h +++ b/arch/parisc/include/asm/processor.h @@ -48,7 +48,7 @@ #ifndef __ASSEMBLER__ =20 struct rlimit; -unsigned long mmap_upper_limit(struct rlimit *rlim_stack); +unsigned long mmap_upper_limit(const struct rlimit *rlim_stack); unsigned long calc_max_stack_size(unsigned long stack_max); =20 /* diff --git a/arch/parisc/kernel/sys_parisc.c b/arch/parisc/kernel/sys_paris= c.c index f852fe274abe..b2cdbb8a12b1 100644 --- a/arch/parisc/kernel/sys_parisc.c +++ b/arch/parisc/kernel/sys_parisc.c @@ -77,7 +77,7 @@ unsigned long calc_max_stack_size(unsigned long stack_max) * indicating that "current" should be used instead of a passed-in * value from the exec bprm as done with arch_pick_mmap_layout(). */ -unsigned long mmap_upper_limit(struct rlimit *rlim_stack) +unsigned long mmap_upper_limit(const struct rlimit *rlim_stack) { unsigned long stack_base; =20 --=20 2.47.2 From nobody Fri Oct 3 11:23:42 2025 Received: from mail-ej1-f42.google.com (mail-ej1-f42.google.com [209.85.218.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B451B279794 for ; Mon, 1 Sep 2025 20:50:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756759846; cv=none; b=aS4Ox6kvlD1oKKY8x7ylw7kWpbqU/cATk2KISYGV3HEVipZoFVdp83b4DvMEw5TGqu4yuCfYPelRxX0NJwfKgfWDwVsFe0O+KUgjs8otFftFPlCIpD91COITgD0tCVC1dABE9uvaLUDwGEmpSLWwO3iEbIyBHEXMHv5zc9WAx2w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756759846; c=relaxed/simple; bh=Uiwj5FytXh8JuGFYDmzftQKcOe0iTru3tGLWkIpecec=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=l2QxD/mG1EjV9S8KrmPzXRwSNQWnUQ0S9NVHFPqUaFfiaqsTIhtiWrxCOtuXIB9Hj3fpX97tKi0tHwc6uNzi6KK4qKr9+FXDKNUQ+iwf7ILaIdSgxb5HqdygBuX+qaRASSseU0hoHoG75JNv/ayA8M4Bkqd2f28t0Bm3biyS31I= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=ionos.com; spf=pass smtp.mailfrom=ionos.com; dkim=pass (2048-bit key) header.d=ionos.com header.i=@ionos.com header.b=hVucwSm7; arc=none smtp.client-ip=209.85.218.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=ionos.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ionos.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ionos.com header.i=@ionos.com header.b="hVucwSm7" Received: by mail-ej1-f42.google.com with SMTP id a640c23a62f3a-afcb7ae6ed0so697408066b.3 for ; Mon, 01 Sep 2025 13:50:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ionos.com; s=google; t=1756759843; x=1757364643; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=xc7ijYojCT4luS7LR3VDEJwaByj8Czavl1FcpBrU7UU=; b=hVucwSm7pi8jhoXlcCNB4cUSsA2xoXsm4NPxGeBRQqDYhHmSUxmdy/KXjrJHHG8iUl AC+GzfT1dEL8hUKifuoOgP/1KE28PYlFhpgR/huCFs3NA/h57/soKgpmiWb2LpSbq8Kw k3itCb1lmCLeZmG9ktU953RHHM884rXBOIKB17RfEr6sqTmm9kpcXGJgVKS+PCQtig3W FT7/lcoOsa0tX7DQ2hWMpRX8X6ZInEiEyrp4wk9LvyUs2vvixlzJqBCfir6Bw2iYbTyz MBur2ZRhKqR1oLTbbJbU+IeORkF+v4+FYWxrTSFJTteRbdEhaXVmDQmxhmfN1eDKVGcz tMQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756759843; x=1757364643; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=xc7ijYojCT4luS7LR3VDEJwaByj8Czavl1FcpBrU7UU=; b=bQ+kxdDuom4mij4hpdcBweNM+B+z40/PNpwqnjGBeLXSrld2GALqzcxLHfCqPvjshh Da1YftxO4o39HdowH1JHST5a8zbi83FbGzwEWuSrShCEJPxj3nCxmQ7vr40uUJdoriyC wESNG4IqcXBN1a8kupqYn4ZLss9h6CEI0p+c3DvLbHCvIAINJo11tg5ZemdQ4VaCVgMF sD957xQZhsPwyTiFdnu6GUVTamiAsbxBqz83gbNaJjKqr6muUSSSAZZGCdXH+mdD8Fgv uyfCJr6Q1UUDlUGTGDp5IjW/zQ/OdUcBI4f+GPD/11smdD88vjd1G4dEs/yDS7c0N5ga g22A== X-Forwarded-Encrypted: i=1; AJvYcCWoNciZEqmfSihxnlnzABFgwjRo1ZnY3gwr3VJI3ct055FLpPhIMCHXU68NuLkxfu5QuA2E6qQsRQC2m64=@vger.kernel.org X-Gm-Message-State: AOJu0YzbJKjIlg/5xMgz6wfwYXazSGEKc80pHeBeEsry974rJ180ucol f1MAqWt1tPgS97hwtDIlzcGjN+mXAJPwA8nLk0S5fIcQKDGjEkWx3mENEmwmA67ZvJ4= X-Gm-Gg: ASbGnctfzP1mjYlT2sbKASI7vLvVQ3ZqjTiQt4qOIMW7qcn0MQC3zAhMfFygtfzR3Vi mMOnLsBKr7MctqkhBQ6zumpp5UWxZ/aLx9MMv7GIrav0UdSeKeGbSHMvoNaz4DUqoF3AZ8QXaCT aSRXdbWlNeK+bhOIkLe//91tFBDB2Ri79HjDvcpT/bvjJWCVkVIfK7euyjtrqsS5QKcpvO/e1hp szkWBMbIQC+H1oEq4ADla9SNYcmsP3vI90MI21J/JMbanHy6FYW6u5aaqTgONSHq/SSyRuXz1Cu AeHZ0sdi7VCztECMCsk7/tLuGD0HiOMuD1T36DhlkiyRxuz4cZ0ROTpo0YqVra9RZz6gMvCswLy M8yec4aQVD/GSyLC0ATCP6v6lPwUZCDUzbl34dyfm7hhbk/KddSXpDL7dYIygxTXWn54zFZSnP7 c16VhcAPbYHZTNdud52HXlJ28f67SJuDdH X-Google-Smtp-Source: AGHT+IGzJPehXmI9EiALURY/rXkYz5IeFVzDP1ESKudUiTiCx5T7yEPplQz84NPBzI/8iDTakDOKMg== X-Received: by 2002:a17:907:60d3:b0:ae0:b3be:f214 with SMTP id a640c23a62f3a-b01d8a267damr879923866b.9.1756759843094; Mon, 01 Sep 2025 13:50:43 -0700 (PDT) Received: from raven.intern.cm-ag (p200300dc6f1d0f00023064fffe740809.dip0.t-ipconnect.de. [2003:dc:6f1d:f00:230:64ff:fe74:809]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-afefcbd9090sm937339066b.69.2025.09.01.13.50.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 13:50:42 -0700 (PDT) From: Max Kellermann To: akpm@linux-foundation.org, david@redhat.com, axelrasmussen@google.com, yuanchu@google.com, willy@infradead.org, hughd@google.com, mhocko@suse.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org, lorenzo.stoakes@oracle.com, Liam.Howlett@oracle.com, vbabka@suse.cz, rppt@kernel.org, surenb@google.com, vishal.moola@gmail.com, linux@armlinux.org.uk, James.Bottomley@HansenPartnership.com, deller@gmx.de, agordeev@linux.ibm.com, gerald.schaefer@linux.ibm.com, hca@linux.ibm.com, gor@linux.ibm.com, borntraeger@linux.ibm.com, svens@linux.ibm.com, davem@davemloft.net, andreas@gaisler.com, dave.hansen@linux.intel.com, luto@kernel.org, peterz@infradead.org, tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, x86@kernel.org, hpa@zytor.com, chris@zankel.net, jcmvbkbc@gmail.com, viro@zeniv.linux.org.uk, brauner@kernel.org, jack@suse.cz, weixugc@google.com, baolin.wang@linux.alibaba.com, rientjes@google.com, shakeel.butt@linux.dev, max.kellermann@ionos.com, thuth@redhat.com, broonie@kernel.org, osalvador@suse.de, jfalempe@redhat.com, mpe@ellerman.id.au, nysal@linux.ibm.com, linux-arm-kernel@lists.infradead.org, linux-parisc@vger.kernel.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, linux-fsdevel@vger.kernel.org Subject: [PATCH v6 08/12] mm: constify arch_pick_mmap_layout() for improved const-correctness Date: Mon, 1 Sep 2025 22:50:17 +0200 Message-ID: <20250901205021.3573313-9-max.kellermann@ionos.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250901205021.3573313-1-max.kellermann@ionos.com> References: <20250901205021.3573313-1-max.kellermann@ionos.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" This function only reads from the rlimit pointer (but writes to the mm_struct pointer which is kept without `const`). All callees are already const-ified or (internal functions) are being constified by this patch. Signed-off-by: Max Kellermann Reviewed-by: Vishal Moola (Oracle) Acked-by: David Hildenbrand Acked-by: Mike Rapoport (Microsoft) Acked-by: Shakeel Butt Acked-by: Vlastimil Babka Reviewed-by: Lorenzo Stoakes --- arch/s390/mm/mmap.c | 4 ++-- arch/sparc/kernel/sys_sparc_64.c | 2 +- arch/x86/mm/mmap.c | 6 +++--- include/linux/sched/mm.h | 4 ++-- mm/util.c | 6 +++--- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/arch/s390/mm/mmap.c b/arch/s390/mm/mmap.c index e188cb6d4946..197c1d9497a7 100644 --- a/arch/s390/mm/mmap.c +++ b/arch/s390/mm/mmap.c @@ -47,7 +47,7 @@ static unsigned long mmap_base_legacy(unsigned long rnd) } =20 static inline unsigned long mmap_base(unsigned long rnd, - struct rlimit *rlim_stack) + const struct rlimit *rlim_stack) { unsigned long gap =3D rlim_stack->rlim_cur; unsigned long pad =3D stack_maxrandom_size() + stack_guard_gap; @@ -169,7 +169,7 @@ unsigned long arch_get_unmapped_area_topdown(struct fil= e *filp, unsigned long ad * This function, called very early during the creation of a new * process VM image, sets up which VM layout function to use: */ -void arch_pick_mmap_layout(struct mm_struct *mm, struct rlimit *rlim_stack) +void arch_pick_mmap_layout(struct mm_struct *mm, const struct rlimit *rlim= _stack) { unsigned long random_factor =3D 0UL; =20 diff --git a/arch/sparc/kernel/sys_sparc_64.c b/arch/sparc/kernel/sys_sparc= _64.c index 785e9909340f..55faf2effa46 100644 --- a/arch/sparc/kernel/sys_sparc_64.c +++ b/arch/sparc/kernel/sys_sparc_64.c @@ -294,7 +294,7 @@ static unsigned long mmap_rnd(void) return rnd << PAGE_SHIFT; } =20 -void arch_pick_mmap_layout(struct mm_struct *mm, struct rlimit *rlim_stack) +void arch_pick_mmap_layout(struct mm_struct *mm, const struct rlimit *rlim= _stack) { unsigned long random_factor =3D mmap_rnd(); unsigned long gap; diff --git a/arch/x86/mm/mmap.c b/arch/x86/mm/mmap.c index 708f85dc9380..82f3a987f7cf 100644 --- a/arch/x86/mm/mmap.c +++ b/arch/x86/mm/mmap.c @@ -80,7 +80,7 @@ unsigned long arch_mmap_rnd(void) } =20 static unsigned long mmap_base(unsigned long rnd, unsigned long task_size, - struct rlimit *rlim_stack) + const struct rlimit *rlim_stack) { unsigned long gap =3D rlim_stack->rlim_cur; unsigned long pad =3D stack_maxrandom_size(task_size) + stack_guard_gap; @@ -110,7 +110,7 @@ static unsigned long mmap_legacy_base(unsigned long rnd, */ static void arch_pick_mmap_base(unsigned long *base, unsigned long *legacy= _base, unsigned long random_factor, unsigned long task_size, - struct rlimit *rlim_stack) + const struct rlimit *rlim_stack) { *legacy_base =3D mmap_legacy_base(random_factor, task_size); if (mmap_is_legacy()) @@ -119,7 +119,7 @@ static void arch_pick_mmap_base(unsigned long *base, un= signed long *legacy_base, *base =3D mmap_base(random_factor, task_size, rlim_stack); } =20 -void arch_pick_mmap_layout(struct mm_struct *mm, struct rlimit *rlim_stack) +void arch_pick_mmap_layout(struct mm_struct *mm, const struct rlimit *rlim= _stack) { if (mmap_is_legacy()) mm_flags_clear(MMF_TOPDOWN, mm); diff --git a/include/linux/sched/mm.h b/include/linux/sched/mm.h index 2201da0afecc..0232d983b715 100644 --- a/include/linux/sched/mm.h +++ b/include/linux/sched/mm.h @@ -178,7 +178,7 @@ static inline void mm_update_next_owner(struct mm_struc= t *mm) #endif =20 extern void arch_pick_mmap_layout(struct mm_struct *mm, - struct rlimit *rlim_stack); + const struct rlimit *rlim_stack); =20 unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, @@ -211,7 +211,7 @@ generic_get_unmapped_area_topdown(struct file *filp, un= signed long addr, unsigned long flags, vm_flags_t vm_flags); #else static inline void arch_pick_mmap_layout(struct mm_struct *mm, - struct rlimit *rlim_stack) {} + const struct rlimit *rlim_stack) {} #endif =20 static inline bool in_vfork(struct task_struct *tsk) diff --git a/mm/util.c b/mm/util.c index 241d2eaf26ca..77462027ad24 100644 --- a/mm/util.c +++ b/mm/util.c @@ -431,7 +431,7 @@ static int mmap_is_legacy(const struct rlimit *rlim_sta= ck) #define MIN_GAP (SZ_128M) #define MAX_GAP (STACK_TOP / 6 * 5) =20 -static unsigned long mmap_base(unsigned long rnd, struct rlimit *rlim_stac= k) +static unsigned long mmap_base(const unsigned long rnd, const struct rlimi= t *rlim_stack) { #ifdef CONFIG_STACK_GROWSUP /* @@ -462,7 +462,7 @@ static unsigned long mmap_base(unsigned long rnd, struc= t rlimit *rlim_stack) #endif } =20 -void arch_pick_mmap_layout(struct mm_struct *mm, struct rlimit *rlim_stack) +void arch_pick_mmap_layout(struct mm_struct *mm, const struct rlimit *rlim= _stack) { unsigned long random_factor =3D 0UL; =20 @@ -478,7 +478,7 @@ void arch_pick_mmap_layout(struct mm_struct *mm, struct= rlimit *rlim_stack) } } #elif defined(CONFIG_MMU) && !defined(HAVE_ARCH_PICK_MMAP_LAYOUT) -void arch_pick_mmap_layout(struct mm_struct *mm, struct rlimit *rlim_stack) +void arch_pick_mmap_layout(struct mm_struct *mm, const struct rlimit *rlim= _stack) { mm->mmap_base =3D TASK_UNMAPPED_BASE; mm_flags_clear(MMF_TOPDOWN, mm); --=20 2.47.2 From nobody Fri Oct 3 11:23:42 2025 Received: from mail-ej1-f49.google.com (mail-ej1-f49.google.com [209.85.218.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C6FFF27B4F5 for ; Mon, 1 Sep 2025 20:50:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756759848; cv=none; b=kgTxBPIERzU7VnzeO+qInENOKWK9t5qrXyaFHUPPJf13tmKL0pU+VZKv7xUKf7YAczG2JVMZyMxNnGAXAdoW086ASTOiABFx5mYkykEgnU0kRs69wtTVPu6c2AUa1KWYRsjOcaKrzRbCWEhoxfxlWfj3jsZwDoHsKRjPnKaC4gA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756759848; c=relaxed/simple; bh=w09YN44Ob8oHKn+uyAjGgqeXNCZXncsfFv0uEPQT9KQ=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=W6juq1Kt3K/bzrnJ/tD/IfvACEft7riZjoPPfHFvMcPrzVrWjL2+cOBxZAqxpf58rQ1TRgbe3UBEq28gR8gLU+iTSFjmwOKYj2ykxNNkijwGXUlr0mpjwi3P6YtVzAb8lQ9rBRV8oQxftDIV+pwrgntBKdkpqBwA7KyvNgaIm70= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=ionos.com; spf=pass smtp.mailfrom=ionos.com; dkim=pass (2048-bit key) header.d=ionos.com header.i=@ionos.com header.b=QVWzbnS6; arc=none smtp.client-ip=209.85.218.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=ionos.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ionos.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ionos.com header.i=@ionos.com header.b="QVWzbnS6" Received: by mail-ej1-f49.google.com with SMTP id a640c23a62f3a-afec56519c8so783157166b.2 for ; Mon, 01 Sep 2025 13:50:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ionos.com; s=google; t=1756759845; x=1757364645; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=3nlX/RfH4bxrhjLqRHCaPu5Q9689qctY9+oII9+YwlY=; b=QVWzbnS68cfJVWT1x41k0Vox8VFLJYY984lxcH1NdE+MWfg+wVnF4DZHMOtZFQSZbT mUZeVxn/YRZCwruyJaNFAH4HLppzBpwxhfa1mSjVMUOITlkk0OZjJOu4uyqOtz9Muh/g BUwoOaDwodyVOZaPxhJsmj27c4r6JVUNW2M0GAO4sjmWG2Nkx528+mnCtG6CcKfAXfjm hHqtT2zkrndHcRfu3nfyk/xQ16iVoUNSbQReCQMmauk9iQKxtbJOLj6AjGhdYa4KEVGS 0VoTuyEKKSRC+yrbwHVxNP1Ha41CMyjTojgjUn9bPQYJ2LhEM0pZ7NsiXQCWWicDr0Kx i2Vw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756759845; x=1757364645; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=3nlX/RfH4bxrhjLqRHCaPu5Q9689qctY9+oII9+YwlY=; b=JDzGy136aHNXfeMGuXb1WXKaZqNzqjnZkqQ/rS1YSYvtdIerHPcgYG6THfCMkx79+r 9YUwuzv4PaVcVCQE95mYwd34e0W3lUeF/fPKh0FZygXc9Sv1mHG7bm/JTBnmBQYWAJrJ 6fsDISRYkvkCbOwrJ7xERcq500YPNk+SpNyHw1PCYxJksW9D2Y/5fuAzztp+reLtuLRA TXiaHJ2ru/AE2c8F1GAFUK3/9FOoDedIyv1Gs89F2k1bmbuLHVjtZnc0wr3aXAVEZcjp 3FBg+7+qn4r9HC6fJVorBO6V1PJYC+bCWJY3knTdMMG9xB9VJpSb2PxHHMadJpg7IRV6 MINA== X-Forwarded-Encrypted: i=1; AJvYcCX6Ovyq7Ka3xcj9ZEdvMYYF/vD1XmSEbK5uCydTBhnulP+WhhANpQnA1Ld0eymibk6AHHAiX6VJeKV0YV0=@vger.kernel.org X-Gm-Message-State: AOJu0YyrgCaKBrWLrIc5C2wm3YRpDsalpcQ6K6sX+aVF0pdkn3qt63sG LOv3he63kx8QjuzklbNNTUSIpE+u8bBMuLWdzYN4thJLAKz0XR2XuoWXghnbD/axiNw= X-Gm-Gg: ASbGnct1QyK1+F9TuAVmcJEm8PpxrQhXxT8Jm6jLmGy4iEEuAUoLE7j2X1WwjnkwwEi lKE2ygguG0LAaY2K91S5V/2dtdnmLUQYBiLhRLpN8YVu5EQEAW/swz/kA8rWfynow6u7xfM1CVV c/QhM8aAFXD0aCN2l+czeO4VP13JMB3dCM/G5RZMILbhH6BQHSkNe3QbHI68qZxmM7bAuD3FVcs W8fm6ob1Jq/sjSSL0uXxWouVjkB9QgPOUQb5nMMb0Ymc5zD8c35s3ahDmUyLCCCEaTMC1FpvhrA NrhkBMu9N1Tl2ZbqFz9uE0H4k0X97n01YXC7fjbTh7LymJbiXQj68p5uf7KR/9rdj5mMlDiGNkU psyydYpaLZaMOEaELefoebQZ78wW3/TpIPkRni+0XrJK/REqN+cMSDNanFaXJy4sb7+/xO9avau 9Y6Zra9L2Eek/t9xM2BUlYIQ== X-Google-Smtp-Source: AGHT+IFcANB8/RcKkowYdOQH/ARcgHa8um9z86mmrwre3BImDNI7cpbMntnFRJto6276WFxuuld4Aw== X-Received: by 2002:a17:906:6a27:b0:b04:302c:fe14 with SMTP id a640c23a62f3a-b04302d0545mr375148766b.21.1756759845048; Mon, 01 Sep 2025 13:50:45 -0700 (PDT) Received: from raven.intern.cm-ag (p200300dc6f1d0f00023064fffe740809.dip0.t-ipconnect.de. [2003:dc:6f1d:f00:230:64ff:fe74:809]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-afefcbd9090sm937339066b.69.2025.09.01.13.50.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 13:50:44 -0700 (PDT) From: Max Kellermann To: akpm@linux-foundation.org, david@redhat.com, axelrasmussen@google.com, yuanchu@google.com, willy@infradead.org, hughd@google.com, mhocko@suse.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org, lorenzo.stoakes@oracle.com, Liam.Howlett@oracle.com, vbabka@suse.cz, rppt@kernel.org, surenb@google.com, vishal.moola@gmail.com, linux@armlinux.org.uk, James.Bottomley@HansenPartnership.com, deller@gmx.de, agordeev@linux.ibm.com, gerald.schaefer@linux.ibm.com, hca@linux.ibm.com, gor@linux.ibm.com, borntraeger@linux.ibm.com, svens@linux.ibm.com, davem@davemloft.net, andreas@gaisler.com, dave.hansen@linux.intel.com, luto@kernel.org, peterz@infradead.org, tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, x86@kernel.org, hpa@zytor.com, chris@zankel.net, jcmvbkbc@gmail.com, viro@zeniv.linux.org.uk, brauner@kernel.org, jack@suse.cz, weixugc@google.com, baolin.wang@linux.alibaba.com, rientjes@google.com, shakeel.butt@linux.dev, max.kellermann@ionos.com, thuth@redhat.com, broonie@kernel.org, osalvador@suse.de, jfalempe@redhat.com, mpe@ellerman.id.au, nysal@linux.ibm.com, linux-arm-kernel@lists.infradead.org, linux-parisc@vger.kernel.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, linux-fsdevel@vger.kernel.org Subject: [PATCH v6 09/12] mm: constify ptdesc_pmd_pts_count() and folio_get_private() Date: Mon, 1 Sep 2025 22:50:18 +0200 Message-ID: <20250901205021.3573313-10-max.kellermann@ionos.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250901205021.3573313-1-max.kellermann@ionos.com> References: <20250901205021.3573313-1-max.kellermann@ionos.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" These functions from mm_types.h are trivial getters that should never write to the given pointers. Signed-off-by: Max Kellermann Reviewed-by: Vishal Moola (Oracle) Reviewed-by: Lorenzo Stoakes Acked-by: David Hildenbrand Acked-by: Mike Rapoport (Microsoft) Acked-by: Shakeel Butt Acked-by: Vlastimil Babka --- include/linux/mm_types.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h index d934a3a5b443..275e8060d918 100644 --- a/include/linux/mm_types.h +++ b/include/linux/mm_types.h @@ -632,7 +632,7 @@ static inline void ptdesc_pmd_pts_dec(struct ptdesc *pt= desc) atomic_dec(&ptdesc->pt_share_count); } =20 -static inline int ptdesc_pmd_pts_count(struct ptdesc *ptdesc) +static inline int ptdesc_pmd_pts_count(const struct ptdesc *ptdesc) { return atomic_read(&ptdesc->pt_share_count); } @@ -660,7 +660,7 @@ static inline void set_page_private(struct page *page, = unsigned long private) page->private =3D private; } =20 -static inline void *folio_get_private(struct folio *folio) +static inline void *folio_get_private(const struct folio *folio) { return folio->private; } --=20 2.47.2 From nobody Fri Oct 3 11:23:42 2025 Received: from mail-ej1-f53.google.com (mail-ej1-f53.google.com [209.85.218.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DEFFF27E07E for ; Mon, 1 Sep 2025 20:50:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756759852; cv=none; b=lU/zkd+YwQ6rotZcxwFZ0d3FM1nXa8s3xeX3a2bjMf0KNgxw3ZUaUTR7h/DhLlxzfVU+PXWixChA/7VLxlKCZ2iN5Kyrrs3rc5rsZTVbV7Dubavw7E5BJosN091r9KjaXEnbNpUG1zuxi1XOlJo1SOGzGNB3ZWWvAP3e1ar46G0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756759852; c=relaxed/simple; bh=KwxE9HKC3R6D7OzhhihjlkWCGsr1cIfp5nBhsVf+4Dw=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZNMFVBMKhnKLw6mTOGYeW20OWb7g1VW08eQn7ONtMo49PaHmSepgv+5bEEMmuKoCSVzqfF7fk8Qb7+pppNcANfzzDPwLi8XCf92UCgk2T6fe3WndOBC5iOAN2z7MgK2y0DvkyR0meDRSpnFgQfGwagAqpVcI6uJyQfQ0EgBiJHQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=ionos.com; spf=pass smtp.mailfrom=ionos.com; dkim=pass (2048-bit key) header.d=ionos.com header.i=@ionos.com header.b=CjQiT/Ae; arc=none smtp.client-ip=209.85.218.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=ionos.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ionos.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ionos.com header.i=@ionos.com header.b="CjQiT/Ae" Received: by mail-ej1-f53.google.com with SMTP id a640c23a62f3a-b043a33b060so133022866b.1 for ; Mon, 01 Sep 2025 13:50:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ionos.com; s=google; t=1756759847; x=1757364647; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=zKRurRT2BneWHgryFTDswdmsEJpe2aYTsThQQXosiss=; b=CjQiT/Aey60m6cHqynB2oCIS05TMVglRXUPa+tofOoe+FfRkS71VkhEyNatsJ3CQdV ogDej4p+JSz+LVrHUfDrlfULe2qLWS0JG4CkpGjvkYMLbt2WjyorHoY7pyMnUJTORKn+ nXTbAi3POobkEfpl1WfZ2vCEYt3TNKuOb49Ar0v4M7zA9VWO88mpEn/tqUcJ5UQtM6Ag AxRoS5S+KdrZ2YuMOOdXl9Lgw0ylWNnb5KhYGZ0Jxz8ZJdctJQ9cl6RxzTQvC34VnF0A XstymQnTpT3hod6E9Qq6wmFrgyZpygqy4Kz1sE22Aljyo+NJwN4TvYuRFfDbgBVuqoxb wwcA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756759847; x=1757364647; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=zKRurRT2BneWHgryFTDswdmsEJpe2aYTsThQQXosiss=; b=U2+R0AC5TRI5A5lgcqsZBElBcXlWi0flPs/vjcuO1ZUNyW3DuJb6fwOtk8zB929LWq 70KgVK7+bLfH3wxELaSRyDf6NB+cJfwGNPjw4419zP8DRTU6kdyQ/5m0e2fT+Gc0pJgm 32idy8QuigrP89zNJ+rkjqT9clHswI+i8eJ4+4S2r0CYa6Vbkb63kyIpyrCJ8z0xs6G9 lO9Qm/mDYLSFSqWswViUs2CCGLzZPZPZWhbX/t14vP2/eBEi/685jpacD/Mw84BYjlHk vdjgwZ4bqdaDoMKQeIqIFGhbp0kPeL0Sqs9tqldwTTMDs5c4VVCCIr2+G5dmRt/9uZPo ZMoQ== X-Forwarded-Encrypted: i=1; AJvYcCXoYTPENyagq1eRU/x5xCEvIeGC+TM/OLcFhSweA/m23TaUqptWZNqx1vuBpbY+Q9z153OaLLUL6LBf5aE=@vger.kernel.org X-Gm-Message-State: AOJu0YzHeZtFb/QuGNewbq7P0xRtQzK8DwvIFvqaf4QoeW7+Wr4p5grP UYidxLErjePkJjuG14kAsA+Yj9NtQxo/B3kfSS756bwHbVEgBV7r16rvDWE0J/drGDE= X-Gm-Gg: ASbGncsXT3fsICLegakh8gQQVtmRsrO7sxUUGcod11UQw1P/AEj5SpXcIsYnTOwvHHo dERMQuTpGI+xWAfdcrtDbXwlB+PJGzXhUcThADs6OMqYfMBkWAoL2ngWqmjIGpCDUTqVJbSN9k4 P/0cA7tm1Y1YqTUxQTUyeMCE8GRsxkP1CQMHEyMhw0H7LmGUouJBqG+j7SgUiK8JVpyVw6AyGBE T3bb5cS7HfqWYgObvA6yGciICnnti198E9owy1ESy0pVSy5UBHQsh6jIFP11hP/CJ/GhmUlUsTO b/FsOab3jL8RctMqyHAduWnfe7aupOdGXveEJyfJtMFuO3SpM2E79/aWOKTlNHzUSFE/Kt58V2R pxGzcjRqieaTfODcu5a7nCn2iYixLaFrC+s5qcW5+MQ+eVzqfLjgiUkOpy88Bq+dmnke0v6H8pX aRN0pcfFH0SHf2B01pNhKLsg== X-Google-Smtp-Source: AGHT+IHCmCpvv2lfwK+DFxb+meLDHCpwG00GZqDzUwq/QLfpGxtMz0YN/b/xauU+UDddCcikhmU4Cw== X-Received: by 2002:a17:907:c04:b0:adf:f8f4:2001 with SMTP id a640c23a62f3a-b01d9772281mr939362966b.49.1756759847019; Mon, 01 Sep 2025 13:50:47 -0700 (PDT) Received: from raven.intern.cm-ag (p200300dc6f1d0f00023064fffe740809.dip0.t-ipconnect.de. [2003:dc:6f1d:f00:230:64ff:fe74:809]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-afefcbd9090sm937339066b.69.2025.09.01.13.50.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 13:50:46 -0700 (PDT) From: Max Kellermann To: akpm@linux-foundation.org, david@redhat.com, axelrasmussen@google.com, yuanchu@google.com, willy@infradead.org, hughd@google.com, mhocko@suse.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org, lorenzo.stoakes@oracle.com, Liam.Howlett@oracle.com, vbabka@suse.cz, rppt@kernel.org, surenb@google.com, vishal.moola@gmail.com, linux@armlinux.org.uk, James.Bottomley@HansenPartnership.com, deller@gmx.de, agordeev@linux.ibm.com, gerald.schaefer@linux.ibm.com, hca@linux.ibm.com, gor@linux.ibm.com, borntraeger@linux.ibm.com, svens@linux.ibm.com, davem@davemloft.net, andreas@gaisler.com, dave.hansen@linux.intel.com, luto@kernel.org, peterz@infradead.org, tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, x86@kernel.org, hpa@zytor.com, chris@zankel.net, jcmvbkbc@gmail.com, viro@zeniv.linux.org.uk, brauner@kernel.org, jack@suse.cz, weixugc@google.com, baolin.wang@linux.alibaba.com, rientjes@google.com, shakeel.butt@linux.dev, max.kellermann@ionos.com, thuth@redhat.com, broonie@kernel.org, osalvador@suse.de, jfalempe@redhat.com, mpe@ellerman.id.au, nysal@linux.ibm.com, linux-arm-kernel@lists.infradead.org, linux-parisc@vger.kernel.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, linux-fsdevel@vger.kernel.org Subject: [PATCH v6 10/12] mm: constify various inline functions for improved const-correctness Date: Mon, 1 Sep 2025 22:50:19 +0200 Message-ID: <20250901205021.3573313-11-max.kellermann@ionos.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250901205021.3573313-1-max.kellermann@ionos.com> References: <20250901205021.3573313-1-max.kellermann@ionos.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" We select certain test functions plus folio_migrate_refs() from mm_inline.h which either invoke each other, functions that are already const-ified, or no further functions. It is therefore relatively trivial to const-ify them, which provides a basis for further const-ification further up the call stack. One exception is the function folio_migrate_refs() which does write to the "new" folio pointer; there, only the "old" folio pointer is being constified; only its "flags" field is read, but nothing written. Signed-off-by: Max Kellermann Reviewed-by: Vishal Moola (Oracle) Acked-by: David Hildenbrand Acked-by: Mike Rapoport (Microsoft) Acked-by: Shakeel Butt Acked-by: Vlastimil Babka Reviewed-by: Lorenzo Stoakes --- include/linux/mm_inline.h | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/include/linux/mm_inline.h b/include/linux/mm_inline.h index 150302b4a905..d6c1011b38f2 100644 --- a/include/linux/mm_inline.h +++ b/include/linux/mm_inline.h @@ -25,7 +25,7 @@ * 0 if @folio is a normal anonymous folio, a tmpfs folio or otherwise * ram or swap backed folio. */ -static inline int folio_is_file_lru(struct folio *folio) +static inline int folio_is_file_lru(const struct folio *folio) { return !folio_test_swapbacked(folio); } @@ -84,7 +84,7 @@ static __always_inline void __folio_clear_lru_flags(struc= t folio *folio) * Return: The LRU list a folio should be on, as an index * into the array of LRU lists. */ -static __always_inline enum lru_list folio_lru_list(struct folio *folio) +static __always_inline enum lru_list folio_lru_list(const struct folio *fo= lio) { enum lru_list lru; =20 @@ -141,7 +141,7 @@ static inline int lru_tier_from_refs(int refs, bool wor= kingset) return workingset ? MAX_NR_TIERS - 1 : order_base_2(refs); } =20 -static inline int folio_lru_refs(struct folio *folio) +static inline int folio_lru_refs(const struct folio *folio) { unsigned long flags =3D READ_ONCE(folio->flags.f); =20 @@ -154,14 +154,14 @@ static inline int folio_lru_refs(struct folio *folio) return ((flags & LRU_REFS_MASK) >> LRU_REFS_PGOFF) + 1; } =20 -static inline int folio_lru_gen(struct folio *folio) +static inline int folio_lru_gen(const struct folio *folio) { unsigned long flags =3D READ_ONCE(folio->flags.f); =20 return ((flags & LRU_GEN_MASK) >> LRU_GEN_PGOFF) - 1; } =20 -static inline bool lru_gen_is_active(struct lruvec *lruvec, int gen) +static inline bool lru_gen_is_active(const struct lruvec *lruvec, int gen) { unsigned long max_seq =3D lruvec->lrugen.max_seq; =20 @@ -217,12 +217,13 @@ static inline void lru_gen_update_size(struct lruvec = *lruvec, struct folio *foli VM_WARN_ON_ONCE(lru_gen_is_active(lruvec, old_gen) && !lru_gen_is_active(= lruvec, new_gen)); } =20 -static inline unsigned long lru_gen_folio_seq(struct lruvec *lruvec, struc= t folio *folio, +static inline unsigned long lru_gen_folio_seq(const struct lruvec *lruvec, + const struct folio *folio, bool reclaiming) { int gen; int type =3D folio_is_file_lru(folio); - struct lru_gen_folio *lrugen =3D &lruvec->lrugen; + const struct lru_gen_folio *lrugen =3D &lruvec->lrugen; =20 /* * +-----------------------------------+---------------------------------= --+ @@ -302,7 +303,7 @@ static inline bool lru_gen_del_folio(struct lruvec *lru= vec, struct folio *folio, return true; } =20 -static inline void folio_migrate_refs(struct folio *new, struct folio *old) +static inline void folio_migrate_refs(struct folio *new, const struct foli= o *old) { unsigned long refs =3D READ_ONCE(old->flags.f) & LRU_REFS_MASK; =20 @@ -330,7 +331,7 @@ static inline bool lru_gen_del_folio(struct lruvec *lru= vec, struct folio *folio, return false; } =20 -static inline void folio_migrate_refs(struct folio *new, struct folio *old) +static inline void folio_migrate_refs(struct folio *new, const struct foli= o *old) { =20 } @@ -508,7 +509,7 @@ static inline void dec_tlb_flush_pending(struct mm_stru= ct *mm) atomic_dec(&mm->tlb_flush_pending); } =20 -static inline bool mm_tlb_flush_pending(struct mm_struct *mm) +static inline bool mm_tlb_flush_pending(const struct mm_struct *mm) { /* * Must be called after having acquired the PTL; orders against that @@ -521,7 +522,7 @@ static inline bool mm_tlb_flush_pending(struct mm_struc= t *mm) return atomic_read(&mm->tlb_flush_pending); } =20 -static inline bool mm_tlb_flush_nested(struct mm_struct *mm) +static inline bool mm_tlb_flush_nested(const struct mm_struct *mm) { /* * Similar to mm_tlb_flush_pending(), we must have acquired the PTL @@ -605,7 +606,7 @@ pte_install_uffd_wp_if_needed(struct vm_area_struct *vm= a, unsigned long addr, return false; } =20 -static inline bool vma_has_recency(struct vm_area_struct *vma) +static inline bool vma_has_recency(const struct vm_area_struct *vma) { if (vma->vm_flags & (VM_SEQ_READ | VM_RAND_READ)) return false; --=20 2.47.2 From nobody Fri Oct 3 11:23:42 2025 Received: from mail-ej1-f52.google.com (mail-ej1-f52.google.com [209.85.218.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CF59A27F00E for ; Mon, 1 Sep 2025 20:50:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756759853; cv=none; b=bR5K0cyu8quqZ4xxJOr2lla13kZqx9QzQPevlA619HSD3H7zSiN7tJhQUrwtILNa927AY2IMmV5gZ5EygRIqQgiB37YExEai/ma5rXHFOjR9RTJcU2MkiRcqayMhg377zjGqeV0T0/XrD65f6NGzV2IBKHFXuPH+WET7P/tg814= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756759853; c=relaxed/simple; bh=LVaqk7JPmnXrVJsNutgrz28SAVbYUhoJQ0pBQKyF5xE=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Dabc4MKm2T9AA/EsZKYDUGKQXqTw5GZ/sLF2/W/mF46WIwbBI6+QIN86NZJcUuwFtWdtM01A60V5SVlDvufE47QWKrZ0oKr/FYP9aP/Uny5TJtcpeqdYNJQdOq9+QyBABpDOh+MlAE6tWwrE5V+z3yEbbXwqKe53fHyl+9taWgk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=ionos.com; spf=pass smtp.mailfrom=ionos.com; dkim=pass (2048-bit key) header.d=ionos.com header.i=@ionos.com header.b=Ry0w2JgS; arc=none smtp.client-ip=209.85.218.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=ionos.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ionos.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ionos.com header.i=@ionos.com header.b="Ry0w2JgS" Received: by mail-ej1-f52.google.com with SMTP id a640c23a62f3a-b042cc3962aso160518266b.0 for ; Mon, 01 Sep 2025 13:50:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ionos.com; s=google; t=1756759849; x=1757364649; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=ZWhGTSQHhd/eK/QU6yjkGMEyVAFgOEBOrFZYGj9rmco=; b=Ry0w2JgSZYo6mbYkimgAJ+2ogA+nhsCFxZ3NG8yr+a8tsvJoKiAO4wTvJKIziE7fA/ DWS8USkUWppnpFJv6Kgthu3XTHc+KsTiNcnQgyvj1Bh7tWU4pYlemrqxINkS2KfFK9a8 edyhufEvAWPjK3GN66Qb9eBgMO++uFm5FWO+9T0rJXUHEAhVRsE3fL0cOs6O1hVbwxYK zMEegfRCy9hsLQml7fhuAVBbpBeYmwfaz0519GR4lVmDvI3FznJVRvDiEDicVODgAz08 J8121RnURncTws35A9irCE/bNsFeOkFTc+NoBhkmUwlcHQ0kIZ1wy3n/5PTAaRfnr7fh izmw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756759849; x=1757364649; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ZWhGTSQHhd/eK/QU6yjkGMEyVAFgOEBOrFZYGj9rmco=; b=c8/ygjCenAcUDenvcXS7+ZuoOmLePK2ZYQ8gwayX2LM0XsjPwStTtoKnDQmI1K2ZBY bEMJFgaeKpwmqiMTA+EXmPlvNb36qhKj85GDsCM5V6JND3ly+tGMwuTXuFTJQTIh3azj 7H6Brjq0tAyBpgz9OlJ3c9o96vp1DEbMbpnT+l8Ix2omf4oOWIAHMwQvVF5qcOni8sQP 64tLX6rXNVOB3KFxMQx6dHgvKfJpMYiEdyaeSAQd4U840/39Zxf1OSQJyYRtQzufF7Y8 AwhZVsnOxpRqcZymdyyx0HLCrWdw6d3Gvb81rgLunTPteGJw1iEwPOrUV0qMXMWUl0cB g47Q== X-Forwarded-Encrypted: i=1; AJvYcCWYW30sMpcK1NOe5Itq1+KUy9sxxljs+n1nEecVJQGh0HdZoOBKGmMTmctQg9xmfZfjdcDcekL2z0ID9Yo=@vger.kernel.org X-Gm-Message-State: AOJu0Yz/9Xmm8ufEd+OQcWbj4oEkq+qcDug6f7Q7kXjWsOnJrX0qR3r8 dCaPM16Sc3pKvOQWhHy8eBqqKtevSQ8LnDuTT3xq/vXiMxcVmt71mH9Ndh5Plac3sw4= X-Gm-Gg: ASbGncvM35G+avdpszPAOatmgstnYkmp2SH6YA3YqxQKSHYVVC+WqkoKP9SQwEaO2PJ q4ferN0gTCMTNYwDLZl/GTVBv/369E2mN2+S3eaA4WUy5cAaeswvugJ9xqqZtzSX7fA+ENLeOXm FwZwrIlAIjBCxtNnn6b6HE5tkP/+4PiurqFLQYV01N7XTiQVWDAGHhilIm5gbHh/pFcAo+E8i2l OB8jpdYFq39N7NfaP3shVj7lg7ukoCJY2OEFYMhfT5C2M14TZ+j5vz5dj+ExRmCs1tqtiPXxM/U UM1jIez1UpN+0Toxs43ILQWp5NQ8f+RdARoYuht5UUWbyawTEU+6ag96W17t64omEHkX28d8chi ADQfz9dqFefVoeEiGHBe2uXFKRjPDbQXyYvC+dz7UZ/PwPGZoneI0pgVDwtC1aDqRHbTnZaE+Ps kow95axHilu85htJGAIGh7Og== X-Google-Smtp-Source: AGHT+IEMQa/HknSd4gH88/51zayuXYOJi/tyPDkVuWYFrGs29hqpFzGFB6MpSNARYjZr5mEqvUnwhQ== X-Received: by 2002:a17:907:1c23:b0:ae6:efe1:5baf with SMTP id a640c23a62f3a-b01d8a75cf5mr969826966b.19.1756759849048; Mon, 01 Sep 2025 13:50:49 -0700 (PDT) Received: from raven.intern.cm-ag (p200300dc6f1d0f00023064fffe740809.dip0.t-ipconnect.de. [2003:dc:6f1d:f00:230:64ff:fe74:809]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-afefcbd9090sm937339066b.69.2025.09.01.13.50.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 13:50:48 -0700 (PDT) From: Max Kellermann To: akpm@linux-foundation.org, david@redhat.com, axelrasmussen@google.com, yuanchu@google.com, willy@infradead.org, hughd@google.com, mhocko@suse.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org, lorenzo.stoakes@oracle.com, Liam.Howlett@oracle.com, vbabka@suse.cz, rppt@kernel.org, surenb@google.com, vishal.moola@gmail.com, linux@armlinux.org.uk, James.Bottomley@HansenPartnership.com, deller@gmx.de, agordeev@linux.ibm.com, gerald.schaefer@linux.ibm.com, hca@linux.ibm.com, gor@linux.ibm.com, borntraeger@linux.ibm.com, svens@linux.ibm.com, davem@davemloft.net, andreas@gaisler.com, dave.hansen@linux.intel.com, luto@kernel.org, peterz@infradead.org, tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, x86@kernel.org, hpa@zytor.com, chris@zankel.net, jcmvbkbc@gmail.com, viro@zeniv.linux.org.uk, brauner@kernel.org, jack@suse.cz, weixugc@google.com, baolin.wang@linux.alibaba.com, rientjes@google.com, shakeel.butt@linux.dev, max.kellermann@ionos.com, thuth@redhat.com, broonie@kernel.org, osalvador@suse.de, jfalempe@redhat.com, mpe@ellerman.id.au, nysal@linux.ibm.com, linux-arm-kernel@lists.infradead.org, linux-parisc@vger.kernel.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, linux-fsdevel@vger.kernel.org Subject: [PATCH v6 11/12] mm: constify assert/test functions in mm.h Date: Mon, 1 Sep 2025 22:50:20 +0200 Message-ID: <20250901205021.3573313-12-max.kellermann@ionos.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250901205021.3573313-1-max.kellermann@ionos.com> References: <20250901205021.3573313-1-max.kellermann@ionos.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" For improved const-correctness. We select certain assert and test functions which either invoke each other, functions that are already const-ified, or no further functions. It is therefore relatively trivial to const-ify them, which provides a basis for further const-ification further up the call stack. Signed-off-by: Max Kellermann Acked-by: David Hildenbrand Acked-by: Mike Rapoport (Microsoft) Acked-by: Shakeel Butt Acked-by: Vlastimil Babka Reviewed-by: Lorenzo Stoakes --- include/linux/mm.h | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index 23864c3519d6..c3767688771c 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -703,7 +703,7 @@ static inline void release_fault_lock(struct vm_fault *= vmf) mmap_read_unlock(vmf->vma->vm_mm); } =20 -static inline void assert_fault_locked(struct vm_fault *vmf) +static inline void assert_fault_locked(const struct vm_fault *vmf) { if (vmf->flags & FAULT_FLAG_VMA_LOCK) vma_assert_locked(vmf->vma); @@ -716,7 +716,7 @@ static inline void release_fault_lock(struct vm_fault *= vmf) mmap_read_unlock(vmf->vma->vm_mm); } =20 -static inline void assert_fault_locked(struct vm_fault *vmf) +static inline void assert_fault_locked(const struct vm_fault *vmf) { mmap_assert_locked(vmf->vma->vm_mm); } @@ -859,7 +859,7 @@ static inline bool vma_is_initial_stack(const struct vm= _area_struct *vma) vma->vm_end >=3D vma->vm_mm->start_stack; } =20 -static inline bool vma_is_temporary_stack(struct vm_area_struct *vma) +static inline bool vma_is_temporary_stack(const struct vm_area_struct *vma) { int maybe_stack =3D vma->vm_flags & (VM_GROWSDOWN | VM_GROWSUP); =20 @@ -873,7 +873,7 @@ static inline bool vma_is_temporary_stack(struct vm_are= a_struct *vma) return false; } =20 -static inline bool vma_is_foreign(struct vm_area_struct *vma) +static inline bool vma_is_foreign(const struct vm_area_struct *vma) { if (!current->mm) return true; @@ -884,7 +884,7 @@ static inline bool vma_is_foreign(struct vm_area_struct= *vma) return false; } =20 -static inline bool vma_is_accessible(struct vm_area_struct *vma) +static inline bool vma_is_accessible(const struct vm_area_struct *vma) { return vma->vm_flags & VM_ACCESS_FLAGS; } @@ -895,7 +895,7 @@ static inline bool is_shared_maywrite(vm_flags_t vm_fla= gs) (VM_SHARED | VM_MAYWRITE); } =20 -static inline bool vma_is_shared_maywrite(struct vm_area_struct *vma) +static inline bool vma_is_shared_maywrite(const struct vm_area_struct *vma) { return is_shared_maywrite(vma->vm_flags); } @@ -1839,7 +1839,7 @@ static inline struct folio *pfn_folio(unsigned long p= fn) } =20 #ifdef CONFIG_MMU -static inline pte_t mk_pte(struct page *page, pgprot_t pgprot) +static inline pte_t mk_pte(const struct page *page, pgprot_t pgprot) { return pfn_pte(page_to_pfn(page), pgprot); } @@ -1854,7 +1854,7 @@ static inline pte_t mk_pte(struct page *page, pgprot_= t pgprot) * * Return: A page table entry suitable for mapping this folio. */ -static inline pte_t folio_mk_pte(struct folio *folio, pgprot_t pgprot) +static inline pte_t folio_mk_pte(const struct folio *folio, pgprot_t pgpro= t) { return pfn_pte(folio_pfn(folio), pgprot); } @@ -1870,7 +1870,7 @@ static inline pte_t folio_mk_pte(struct folio *folio,= pgprot_t pgprot) * * Return: A page table entry suitable for mapping this folio. */ -static inline pmd_t folio_mk_pmd(struct folio *folio, pgprot_t pgprot) +static inline pmd_t folio_mk_pmd(const struct folio *folio, pgprot_t pgpro= t) { return pmd_mkhuge(pfn_pmd(folio_pfn(folio), pgprot)); } @@ -1886,7 +1886,7 @@ static inline pmd_t folio_mk_pmd(struct folio *folio,= pgprot_t pgprot) * * Return: A page table entry suitable for mapping this folio. */ -static inline pud_t folio_mk_pud(struct folio *folio, pgprot_t pgprot) +static inline pud_t folio_mk_pud(const struct folio *folio, pgprot_t pgpro= t) { return pud_mkhuge(pfn_pud(folio_pfn(folio), pgprot)); } @@ -3488,7 +3488,7 @@ struct vm_area_struct *vma_lookup(struct mm_struct *m= m, unsigned long addr) return mtree_load(&mm->mm_mt, addr); } =20 -static inline unsigned long stack_guard_start_gap(struct vm_area_struct *v= ma) +static inline unsigned long stack_guard_start_gap(const struct vm_area_str= uct *vma) { if (vma->vm_flags & VM_GROWSDOWN) return stack_guard_gap; @@ -3500,7 +3500,7 @@ static inline unsigned long stack_guard_start_gap(str= uct vm_area_struct *vma) return 0; } =20 -static inline unsigned long vm_start_gap(struct vm_area_struct *vma) +static inline unsigned long vm_start_gap(const struct vm_area_struct *vma) { unsigned long gap =3D stack_guard_start_gap(vma); unsigned long vm_start =3D vma->vm_start; @@ -3511,7 +3511,7 @@ static inline unsigned long vm_start_gap(struct vm_ar= ea_struct *vma) return vm_start; } =20 -static inline unsigned long vm_end_gap(struct vm_area_struct *vma) +static inline unsigned long vm_end_gap(const struct vm_area_struct *vma) { unsigned long vm_end =3D vma->vm_end; =20 @@ -3523,7 +3523,7 @@ static inline unsigned long vm_end_gap(struct vm_area= _struct *vma) return vm_end; } =20 -static inline unsigned long vma_pages(struct vm_area_struct *vma) +static inline unsigned long vma_pages(const struct vm_area_struct *vma) { return (vma->vm_end - vma->vm_start) >> PAGE_SHIFT; } @@ -3540,7 +3540,7 @@ static inline struct vm_area_struct *find_exact_vma(s= truct mm_struct *mm, return vma; } =20 -static inline bool range_in_vma(struct vm_area_struct *vma, +static inline bool range_in_vma(const struct vm_area_struct *vma, unsigned long start, unsigned long end) { return (vma && vma->vm_start <=3D start && end <=3D vma->vm_end); @@ -3656,7 +3656,7 @@ static inline int vm_fault_to_errno(vm_fault_t vm_fau= lt, int foll_flags) * Indicates whether GUP can follow a PROT_NONE mapped page, or whether * a (NUMA hinting) fault is required. */ -static inline bool gup_can_follow_protnone(struct vm_area_struct *vma, +static inline bool gup_can_follow_protnone(const struct vm_area_struct *vm= a, unsigned int flags) { /* @@ -3786,7 +3786,7 @@ static inline bool debug_guardpage_enabled(void) return static_branch_unlikely(&_debug_guardpage_enabled); } =20 -static inline bool page_is_guard(struct page *page) +static inline bool page_is_guard(const struct page *page) { if (!debug_guardpage_enabled()) return false; @@ -3817,7 +3817,7 @@ static inline void debug_pagealloc_map_pages(struct p= age *page, int numpages) {} static inline void debug_pagealloc_unmap_pages(struct page *page, int nump= ages) {} static inline unsigned int debug_guardpage_minorder(void) { return 0; } static inline bool debug_guardpage_enabled(void) { return false; } -static inline bool page_is_guard(struct page *page) { return false; } +static inline bool page_is_guard(const struct page *page) { return false; } static inline bool set_page_guard(struct zone *zone, struct page *page, unsigned int order) { return false; } static inline void clear_page_guard(struct zone *zone, struct page *page, @@ -3899,7 +3899,7 @@ void vmemmap_free(unsigned long start, unsigned long = end, #endif =20 #ifdef CONFIG_SPARSEMEM_VMEMMAP -static inline unsigned long vmem_altmap_offset(struct vmem_altmap *altmap) +static inline unsigned long vmem_altmap_offset(const struct vmem_altmap *a= ltmap) { /* number of pfns from base where pfn_to_page() is valid */ if (altmap) @@ -3913,7 +3913,7 @@ static inline void vmem_altmap_free(struct vmem_altma= p *altmap, altmap->alloc -=3D nr_pfns; } #else -static inline unsigned long vmem_altmap_offset(struct vmem_altmap *altmap) +static inline unsigned long vmem_altmap_offset(const struct vmem_altmap *a= ltmap) { return 0; } --=20 2.47.2 From nobody Fri Oct 3 11:23:42 2025 Received: from mail-ej1-f48.google.com (mail-ej1-f48.google.com [209.85.218.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 989A627B4F5 for ; Mon, 1 Sep 2025 20:50:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756759854; cv=none; b=HfDn0g+laT+sjyOEPYXenQzxfPk/8bchf/gtzybMnVW6lG7cVIBptHiTq37id94bmnGF2WYRyYoYUZnW84L1K2KGcLG5SILOSKCQLhwl0oMfZCCYI3iY0UHKUhonRpSV3wR4S7zurVQqUQX6fiszNHdVOVXTCHc03IAIjkqUwjg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756759854; c=relaxed/simple; bh=G9fQmLCfKmFA44mJm/ujwf2i5TqVTmSI2avVaselzL4=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Fp0c4LzC7I3UsdYjA/ZjlBJolG42Fq4nLQgOy3WwIJLiowPs7yiXjAxlgA7uYkLClp6KZVGFcgD2KTGawsxY/t4N7ZicmKLgIXIe8uwArC0G1yStzYKehjl5K2cVicXq7Y/s78E1YVqjsSprkz58CyN/+i0QpMd1vH4zkyNVHwE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=ionos.com; spf=pass smtp.mailfrom=ionos.com; dkim=pass (2048-bit key) header.d=ionos.com header.i=@ionos.com header.b=KtJaWD0O; arc=none smtp.client-ip=209.85.218.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=ionos.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ionos.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ionos.com header.i=@ionos.com header.b="KtJaWD0O" Received: by mail-ej1-f48.google.com with SMTP id a640c23a62f3a-b042cc3962aso160519566b.0 for ; Mon, 01 Sep 2025 13:50:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ionos.com; s=google; t=1756759851; x=1757364651; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=R3uoyKSyOaO3f7nxjstRVXs4aNsGaCK5BZpTMsYSqag=; b=KtJaWD0OBN1VVuuda+jgLk8NC0/k1xZZ3SKPBX/0KMoGr5GtEMhmcmKpwqLMVOW/MN vaDuMg/Wk7xrizVBHFI0Ek/Nj11ivZ62pvECahho/Fvb2Bk/uE0euUcD1A98ufdHe6VS 0tpinaSW1SpRX15c2xZeACGeo40LFGp65K0t2xm8lnSSTvgFLsG9uDNzXJwVoY0/82uJ LcXtCjWeMMr+oZ0ZJwEL9zpvhSqyXeHkCnoSH52I1GX4CYUKEQecrdO2N4kd2VwnAg4Q Y8Gi0GHpWkq8OwIjfaFXsY5YDo0LvwvyWYKa0p+4a2LNZtiAgoxkuoGMCyeLIG5q81XG GUgg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756759851; x=1757364651; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=R3uoyKSyOaO3f7nxjstRVXs4aNsGaCK5BZpTMsYSqag=; b=Lj5BL4rQ7OznGB2FOXRuD1YxhcKbspYfBIo4QVT6pjSj4a/lnjlyHszfJVNpTAODCE M+V8gSfteCnghjzZUJH4NWOoXUlsCe7IgocPUb7rTGNwMbbPFX5k8/PLJI9Zx7soOS2U 2OkvLB8W69FI17fEKS4+f+FAmdIou4ojEnmBJLP9C9ZDzb//T5KiPmSwa9CPcvnBGQUZ qJkj8od8EBfQ9KvtCjs4yrLTCOH6lbWNaWxsOfhJFJmrCTLCS5nTjiBcs6QZ6HYmq/uv Z/lo5shHY94R/F3NbsYINN+92hf1h2aSKVyMt8I9MZhWp7diEY2Setf3nf1fpvO9GM4g YEqg== X-Forwarded-Encrypted: i=1; AJvYcCWDfCZIzmTq7h6L6KXt9patP+5xVh8AmLPm/RySd0U2m0bDUyc3TxnlXF3hbF1FUkCtXmcCIeyqbqFLmc0=@vger.kernel.org X-Gm-Message-State: AOJu0YxQf5/HXbNKW9lxgc2dxw6c3ujDkxLgDhs/Gy1rOrCAANYymjds oTjqK7st5aL6djuhT+LPjsEkWD30ApEjQs4WUko/ivui9F0EGwITolLpWV4JE8Jc4B4= X-Gm-Gg: ASbGncs3LKrGyoLk3l9lqZnubq61odQD/QsvaEl9T9cfzoqB10xQGQ72c5uPIpu3SsB b0DoZQoAlOuhmrp0Jq0YcIvhA2g7TSO67iwFB7xC/E0uYpMnc6iP3fuXuAE1QPeHobepuTBGs/Z Ii/SXPPROrOzhlrzrOu2PMjRbmKWT5uw6tTodlNXSBfNAyELzrxn/g6gxcluaWLoYMUZJF/ZE6j EqtWZnw9dtGpe3bo0pCf8XtYHUqQA+nj3ssQVrccdIstIwwWLYER7ZzO6Oc/Udz+WZzVQywOvj7 0hzK4ST0TKOlGiclXRgdHjEUAcQk71oepOw2yHhOD1idMbWZQGVw3kK61ZlNJSccc08pgQIds/3 szSYZzqA/Lp4cy4hC36viVT8gjA+XP+ttHUOeXEtms0ATiH76sySlacRtSM5EXVuuAFiEu+FzJK g3QwbUEnd8p8wW+mArceNqNZWs60F7Tg8s X-Google-Smtp-Source: AGHT+IHpQqCA9H+O3+CE5gTkKZKcF7k6oI5kQsi6mdSUrMDC8NBoCachyUvtoP/lhYVN+0jVOidhhg== X-Received: by 2002:a17:907:9611:b0:afe:74a3:f78b with SMTP id a640c23a62f3a-b01d98b4c39mr886692466b.59.1756759850966; Mon, 01 Sep 2025 13:50:50 -0700 (PDT) Received: from raven.intern.cm-ag (p200300dc6f1d0f00023064fffe740809.dip0.t-ipconnect.de. [2003:dc:6f1d:f00:230:64ff:fe74:809]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-afefcbd9090sm937339066b.69.2025.09.01.13.50.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 13:50:50 -0700 (PDT) From: Max Kellermann To: akpm@linux-foundation.org, david@redhat.com, axelrasmussen@google.com, yuanchu@google.com, willy@infradead.org, hughd@google.com, mhocko@suse.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org, lorenzo.stoakes@oracle.com, Liam.Howlett@oracle.com, vbabka@suse.cz, rppt@kernel.org, surenb@google.com, vishal.moola@gmail.com, linux@armlinux.org.uk, James.Bottomley@HansenPartnership.com, deller@gmx.de, agordeev@linux.ibm.com, gerald.schaefer@linux.ibm.com, hca@linux.ibm.com, gor@linux.ibm.com, borntraeger@linux.ibm.com, svens@linux.ibm.com, davem@davemloft.net, andreas@gaisler.com, dave.hansen@linux.intel.com, luto@kernel.org, peterz@infradead.org, tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, x86@kernel.org, hpa@zytor.com, chris@zankel.net, jcmvbkbc@gmail.com, viro@zeniv.linux.org.uk, brauner@kernel.org, jack@suse.cz, weixugc@google.com, baolin.wang@linux.alibaba.com, rientjes@google.com, shakeel.butt@linux.dev, max.kellermann@ionos.com, thuth@redhat.com, broonie@kernel.org, osalvador@suse.de, jfalempe@redhat.com, mpe@ellerman.id.au, nysal@linux.ibm.com, linux-arm-kernel@lists.infradead.org, linux-parisc@vger.kernel.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, linux-fsdevel@vger.kernel.org Subject: [PATCH v6 12/12] mm: constify highmem related functions for improved const-correctness Date: Mon, 1 Sep 2025 22:50:21 +0200 Message-ID: <20250901205021.3573313-13-max.kellermann@ionos.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250901205021.3573313-1-max.kellermann@ionos.com> References: <20250901205021.3573313-1-max.kellermann@ionos.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Lots of functions in mm/highmem.c do not write to the given pointers and do not call functions that take non-const pointers and can therefore be constified. This includes functions like kunmap() which might be implemented in a way that writes to the pointer (e.g. to update reference counters or mapping fields), but currently are not. kmap() on the other hand cannot be made const because it calls set_page_address() which is non-const in some architectures/configurations. Signed-off-by: Max Kellermann Acked-by: David Hildenbrand Acked-by: Mike Rapoport (Microsoft) Acked-by: Shakeel Butt Acked-by: Vlastimil Babka Reviewed-by: Lorenzo Stoakes --- arch/arm/include/asm/highmem.h | 6 +++--- arch/xtensa/include/asm/highmem.h | 2 +- include/linux/highmem-internal.h | 36 +++++++++++++++---------------- include/linux/highmem.h | 8 +++---- mm/highmem.c | 10 ++++----- 5 files changed, 31 insertions(+), 31 deletions(-) diff --git a/arch/arm/include/asm/highmem.h b/arch/arm/include/asm/highmem.h index b4b66220952d..bdb209e002a4 100644 --- a/arch/arm/include/asm/highmem.h +++ b/arch/arm/include/asm/highmem.h @@ -46,9 +46,9 @@ extern pte_t *pkmap_page_table; #endif =20 #ifdef ARCH_NEEDS_KMAP_HIGH_GET -extern void *kmap_high_get(struct page *page); +extern void *kmap_high_get(const struct page *page); =20 -static inline void *arch_kmap_local_high_get(struct page *page) +static inline void *arch_kmap_local_high_get(const struct page *page) { if (IS_ENABLED(CONFIG_DEBUG_HIGHMEM) && !cache_is_vivt()) return NULL; @@ -57,7 +57,7 @@ static inline void *arch_kmap_local_high_get(struct page = *page) #define arch_kmap_local_high_get arch_kmap_local_high_get =20 #else /* ARCH_NEEDS_KMAP_HIGH_GET */ -static inline void *kmap_high_get(struct page *page) +static inline void *kmap_high_get(const struct page *page) { return NULL; } diff --git a/arch/xtensa/include/asm/highmem.h b/arch/xtensa/include/asm/hi= ghmem.h index 34b8b620e7f1..b55235f4adac 100644 --- a/arch/xtensa/include/asm/highmem.h +++ b/arch/xtensa/include/asm/highmem.h @@ -29,7 +29,7 @@ =20 #if DCACHE_WAY_SIZE > PAGE_SIZE #define get_pkmap_color get_pkmap_color -static inline int get_pkmap_color(struct page *page) +static inline int get_pkmap_color(const struct page *page) { return DCACHE_ALIAS(page_to_phys(page)); } diff --git a/include/linux/highmem-internal.h b/include/linux/highmem-inter= nal.h index 36053c3d6d64..0574c21ca45d 100644 --- a/include/linux/highmem-internal.h +++ b/include/linux/highmem-internal.h @@ -7,7 +7,7 @@ */ #ifdef CONFIG_KMAP_LOCAL void *__kmap_local_pfn_prot(unsigned long pfn, pgprot_t prot); -void *__kmap_local_page_prot(struct page *page, pgprot_t prot); +void *__kmap_local_page_prot(const struct page *page, pgprot_t prot); void kunmap_local_indexed(const void *vaddr); void kmap_local_fork(struct task_struct *tsk); void __kmap_local_sched_out(void); @@ -33,7 +33,7 @@ static inline void kmap_flush_tlb(unsigned long addr) { } #endif =20 void *kmap_high(struct page *page); -void kunmap_high(struct page *page); +void kunmap_high(const struct page *page); void __kmap_flush_unused(void); struct page *__kmap_to_page(void *addr); =20 @@ -50,7 +50,7 @@ static inline void *kmap(struct page *page) return addr; } =20 -static inline void kunmap(struct page *page) +static inline void kunmap(const struct page *page) { might_sleep(); if (!PageHighMem(page)) @@ -68,12 +68,12 @@ static inline void kmap_flush_unused(void) __kmap_flush_unused(); } =20 -static inline void *kmap_local_page(struct page *page) +static inline void *kmap_local_page(const struct page *page) { return __kmap_local_page_prot(page, kmap_prot); } =20 -static inline void *kmap_local_page_try_from_panic(struct page *page) +static inline void *kmap_local_page_try_from_panic(const struct page *page) { if (!PageHighMem(page)) return page_address(page); @@ -81,13 +81,13 @@ static inline void *kmap_local_page_try_from_panic(stru= ct page *page) return NULL; } =20 -static inline void *kmap_local_folio(struct folio *folio, size_t offset) +static inline void *kmap_local_folio(const struct folio *folio, size_t off= set) { - struct page *page =3D folio_page(folio, offset / PAGE_SIZE); + const struct page *page =3D folio_page(folio, offset / PAGE_SIZE); return __kmap_local_page_prot(page, kmap_prot) + offset % PAGE_SIZE; } =20 -static inline void *kmap_local_page_prot(struct page *page, pgprot_t prot) +static inline void *kmap_local_page_prot(const struct page *page, pgprot_t= prot) { return __kmap_local_page_prot(page, prot); } @@ -102,7 +102,7 @@ static inline void __kunmap_local(const void *vaddr) kunmap_local_indexed(vaddr); } =20 -static inline void *kmap_atomic_prot(struct page *page, pgprot_t prot) +static inline void *kmap_atomic_prot(const struct page *page, pgprot_t pro= t) { if (IS_ENABLED(CONFIG_PREEMPT_RT)) migrate_disable(); @@ -113,7 +113,7 @@ static inline void *kmap_atomic_prot(struct page *page,= pgprot_t prot) return __kmap_local_page_prot(page, prot); } =20 -static inline void *kmap_atomic(struct page *page) +static inline void *kmap_atomic(const struct page *page) { return kmap_atomic_prot(page, kmap_prot); } @@ -173,32 +173,32 @@ static inline void *kmap(struct page *page) return page_address(page); } =20 -static inline void kunmap_high(struct page *page) { } +static inline void kunmap_high(const struct page *page) { } static inline void kmap_flush_unused(void) { } =20 -static inline void kunmap(struct page *page) +static inline void kunmap(const struct page *page) { #ifdef ARCH_HAS_FLUSH_ON_KUNMAP kunmap_flush_on_unmap(page_address(page)); #endif } =20 -static inline void *kmap_local_page(struct page *page) +static inline void *kmap_local_page(const struct page *page) { return page_address(page); } =20 -static inline void *kmap_local_page_try_from_panic(struct page *page) +static inline void *kmap_local_page_try_from_panic(const struct page *page) { return page_address(page); } =20 -static inline void *kmap_local_folio(struct folio *folio, size_t offset) +static inline void *kmap_local_folio(const struct folio *folio, size_t off= set) { return folio_address(folio) + offset; } =20 -static inline void *kmap_local_page_prot(struct page *page, pgprot_t prot) +static inline void *kmap_local_page_prot(const struct page *page, pgprot_t= prot) { return kmap_local_page(page); } @@ -215,7 +215,7 @@ static inline void __kunmap_local(const void *addr) #endif } =20 -static inline void *kmap_atomic(struct page *page) +static inline void *kmap_atomic(const struct page *page) { if (IS_ENABLED(CONFIG_PREEMPT_RT)) migrate_disable(); @@ -225,7 +225,7 @@ static inline void *kmap_atomic(struct page *page) return page_address(page); } =20 -static inline void *kmap_atomic_prot(struct page *page, pgprot_t prot) +static inline void *kmap_atomic_prot(const struct page *page, pgprot_t pro= t) { return kmap_atomic(page); } diff --git a/include/linux/highmem.h b/include/linux/highmem.h index 6234f316468c..105cc4c00cc3 100644 --- a/include/linux/highmem.h +++ b/include/linux/highmem.h @@ -43,7 +43,7 @@ static inline void *kmap(struct page *page); * Counterpart to kmap(). A NOOP for CONFIG_HIGHMEM=3Dn and for mappings of * pages in the low memory area. */ -static inline void kunmap(struct page *page); +static inline void kunmap(const struct page *page); =20 /** * kmap_to_page - Get the page for a kmap'ed address @@ -93,7 +93,7 @@ static inline void kmap_flush_unused(void); * disabling migration in order to keep the virtual address stable across * preemption. No caller of kmap_local_page() can rely on this side effect. */ -static inline void *kmap_local_page(struct page *page); +static inline void *kmap_local_page(const struct page *page); =20 /** * kmap_local_folio - Map a page in this folio for temporary usage @@ -129,7 +129,7 @@ static inline void *kmap_local_page(struct page *page); * Context: Can be invoked from any context. * Return: The virtual address of @offset. */ -static inline void *kmap_local_folio(struct folio *folio, size_t offset); +static inline void *kmap_local_folio(const struct folio *folio, size_t off= set); =20 /** * kmap_atomic - Atomically map a page for temporary usage - Deprecated! @@ -176,7 +176,7 @@ static inline void *kmap_local_folio(struct folio *foli= o, size_t offset); * kunmap_atomic(vaddr2); * kunmap_atomic(vaddr1); */ -static inline void *kmap_atomic(struct page *page); +static inline void *kmap_atomic(const struct page *page); =20 /* Highmem related interfaces for management code */ static inline unsigned long nr_free_highpages(void); diff --git a/mm/highmem.c b/mm/highmem.c index ef3189b36cad..b5c8e4c2d5d4 100644 --- a/mm/highmem.c +++ b/mm/highmem.c @@ -61,7 +61,7 @@ static inline int kmap_local_calc_idx(int idx) /* * Determine color of virtual address where the page should be mapped. */ -static inline unsigned int get_pkmap_color(struct page *page) +static inline unsigned int get_pkmap_color(const struct page *page) { return 0; } @@ -334,7 +334,7 @@ EXPORT_SYMBOL(kmap_high); * * This can be called from any context. */ -void *kmap_high_get(struct page *page) +void *kmap_high_get(const struct page *page) { unsigned long vaddr, flags; =20 @@ -356,7 +356,7 @@ void *kmap_high_get(struct page *page) * If ARCH_NEEDS_KMAP_HIGH_GET is not defined then this may be called * only from user context. */ -void kunmap_high(struct page *page) +void kunmap_high(const struct page *page) { unsigned long vaddr; unsigned long nr; @@ -508,7 +508,7 @@ static inline void kmap_local_idx_pop(void) #endif =20 #ifndef arch_kmap_local_high_get -static inline void *arch_kmap_local_high_get(struct page *page) +static inline void *arch_kmap_local_high_get(const struct page *page) { return NULL; } @@ -572,7 +572,7 @@ void *__kmap_local_pfn_prot(unsigned long pfn, pgprot_t= prot) } EXPORT_SYMBOL_GPL(__kmap_local_pfn_prot); =20 -void *__kmap_local_page_prot(struct page *page, pgprot_t prot) +void *__kmap_local_page_prot(const struct page *page, pgprot_t prot) { void *kmap; =20 --=20 2.47.2