From nobody Sun Dec 14 06:22:04 2025 Received: from mail-ed1-f42.google.com (mail-ed1-f42.google.com [209.85.208.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 0D3982F49F3 for ; Mon, 1 Sep 2025 12:30:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756729839; cv=none; b=WaiiEuZ0k3ctv7FUNRsboR/Cr+JnC9+C67kOwW5JxbkC6tZkGOkn6RVroiEljYmksw0GhZ3ZhsNuM0qaCRHQhvFLosHo+KMeA97AXvDIwSdwHiYpOmuFsVw0eXfd1ODHZscMXwsCvFqDhlBtEzU9orrKzscbBmv7r7eUHYuLEBY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756729839; c=relaxed/simple; bh=v24uZZ9KVAxxo/0P71k6jf7BKwFIJrdpDNs1iZ9/YH8=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=TNgwDxNLjYHl1BM3uA7RMIj44SFHkiKk1Y4sBVJ7662y2ywMzZ2qO7DgxRBM+xSi9I4TPOqleS4qutGHsLEOnBD5b6sB7DisSZllmFyVogN56FUUmqk8ZiEwehUDnQWEunS6eIL4SZo99yc7Nr1kX4WvekRzemAxT8o6w49xCMk= 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=bg3wcAgF; arc=none smtp.client-ip=209.85.208.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="bg3wcAgF" Received: by mail-ed1-f42.google.com with SMTP id 4fb4d7f45d1cf-61cb4370e7bso6395384a12.3 for ; Mon, 01 Sep 2025 05:30:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ionos.com; s=google; t=1756729835; x=1757334635; 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=dKIQLUaaWXpeIWzcvUskrPePOLIqiIThIa1QtzzvUMQ=; b=bg3wcAgFvz6eccB+aOUXxMPDfC+OoWDE6CerXdrkTW1e/F5L12zGQtf53Mb6D2fd8C UBXLDuIN77FktIrntj1YljasfSdTqK+rtsZsfNBKTO9rwP/ddiHmcmgBkFUl8ppQgGj9 u6uEpC2J8ErfOofMFZrQoiomYgRFi6Kd+yztu+9qmpKLjZ/L1aaLoPIiuZZL4KwRKZ/P WNBFbDxEUKkAdaWFGbxuJB8nuDdQbkQnXanRjih9qp1Fj98Lg347QbmCG6YNGo4QFxMD W5ulon3uX4L8ZIqCTkri1jduQKlH6HFQm6aMWekuXdwopIDkVRg08PheKUlOrpaq5n4i 7izw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756729835; x=1757334635; 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=dKIQLUaaWXpeIWzcvUskrPePOLIqiIThIa1QtzzvUMQ=; b=m7h16d2MaYochDIP5h8PTuCHa0PTdx/Cz4oXmDId6f7GB4pCm7IF9y0wrM3beZbk0H urnybvo6J9NHpk06NgGY8b/ziqUXGavv7ofuupcpQwL8nmOsfWkho1M0jvrXFOIVzMqu cxPWz0TEHP/2sNDO2ZbsO1SSHaLmxd9OvevD22iljx7lESUj5aE8sFmPvgswIG0AwUJG xfoZW54I97EOtmV/8yL8HELfSKq2bNMrF2I322f5iJOMujn99Rr/3+r9o1LKvDMcsB9K 2hHlkV2HdkfkRqeRlDcAu0S/QpviC6R1We6rkI7Kd4RQV/bMp/Pd9MDkwwN7j1ZVBs8p OQ8g== X-Forwarded-Encrypted: i=1; AJvYcCWxi0EAq46AqtONPRh3ag2LJDrkfr7nk55eUahw8twk2oHhmKfer7MDhpPAhSpTj24AYqUnaUFaQgAQE5w=@vger.kernel.org X-Gm-Message-State: AOJu0Yz7gVqsu9pjGBkTYL4mc26h2NAyiNoVkubmiW1qubeazQb2IbnE ubnWiWjlcxwUxdH29vhLzwDk/2Vn1g5wgM5VXMoESw9iSoQ2QwJQobs3JZ5aUqqmvW0= X-Gm-Gg: ASbGncuUW2ux9UZ6UATtA/h7U7C6q3WxkGHlGDkzt9UyvkqosN0sXlIpS7SyRa40/kD paF5FGT5eekzo+0/DXUW7lTFudLfIQXiX7jGVMztVIdElVknsJzR+q1b4bz9NpgbELVdqXcgR9I dBAC3XlQU+owBpaOdcivP0IJID+LLbsAw0gOMv83u9+z4yNIbq71/WkWKGJMEIERSgdSYuozp0o HN9+xdhQnCdVe3NWkmXwNPFnTvBZqj6vlNziwVl3i0hut+sMMstENbQxt3UnodyN92P5Rp0jS2W uyZFX4zr9qWUgOHwJ6/Nt+8KZmQ0pnRS8Bn9WfrG6GI3RiUe+QdAwjQppCs47tV5Im++42PEzUD SCYfwPwLofy+cmgE/fZpmsfHnhC4JPzTVkK1Rlxv9jSsf8oesM8tSnxqIvGfmR04a+t2KwJ0gAf zDOjJrGryf/bxxjFNbxnCHiA== X-Google-Smtp-Source: AGHT+IGDWKKpCY+gwaNyKUXSsMGebFFbg8AoojoUj/75zRe+ebpEqmLb7gpe5dy7vu7IufqwC7egRw== X-Received: by 2002:a05:6402:505c:b0:615:78c6:7aed with SMTP id 4fb4d7f45d1cf-61d26ebcdffmr6326182a12.32.1756729835027; Mon, 01 Sep 2025 05:30: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 4fb4d7f45d1cf-61eaf5883b6sm255566a12.20.2025.09.01.05.30.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 05:30: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 v5 01/12] mm: constify shmem related test functions for improved const-correctness Date: Mon, 1 Sep 2025 14:30:17 +0200 Message-ID: <20250901123028.3383461-2-max.kellermann@ionos.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250901123028.3383461-1-max.kellermann@ionos.com> References: <20250901123028.3383461-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) Acked-by: David Hildenbrand Reviewed-by: Christian Brauner Reviewed-by: Lorenzo Stoakes --- 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..d55bceaa1c80 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 *const 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 *const 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 *const vma) { return vma_is_anon_shmem(vma) || vma->vm_ops =3D=3D &shmem_vm_ops; } --=20 2.47.2 From nobody Sun Dec 14 06:22:04 2025 Received: from mail-ed1-f46.google.com (mail-ed1-f46.google.com [209.85.208.46]) (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 0AD41326D7D for ; Mon, 1 Sep 2025 12:30:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756729841; cv=none; b=s4YnZaduTdTsE/k+S1R6BmeFZ74k+ouJEGanGYhUaiAhzU6S6MFdK8TZjyAAS5qc0HLz8Wyt/4VAgq8Yy+NAbe91UUNuveXVCEzm0OmcgZTfxHKz5IDWoMWagdiIUXB6CYyG3eMFoXFg6Ce0K3S/UlvvNng+7Bn0eNN2LOo2+Cw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756729841; c=relaxed/simple; bh=WKGKwNmSvYkiyEAwtOVKCoUN37h0vtciXL26zW1FBGM=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Ledy/FwXte+85r8GxfHqwYgXMempUvNYsjYEHD5u3Wayt56UE07YJN2RIO4dPgzv6CZOMal721ViU4OwIzpF6CHwhpg6z8EHu2n8m832J6IJeuTccuLHMx2EYef31zbZ4y8D+np/Qv7lHRVgGN7gGfNmYW76ksFvbbsiQiuIW+A= 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=Vmj4celk; arc=none smtp.client-ip=209.85.208.46 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="Vmj4celk" Received: by mail-ed1-f46.google.com with SMTP id 4fb4d7f45d1cf-6188b5ae1e8so4338800a12.0 for ; Mon, 01 Sep 2025 05:30:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ionos.com; s=google; t=1756729837; x=1757334637; 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=zsZOhkPaRGuLceh4X0WyYGraOTpsD0tyj5yjo8FiiY0=; b=Vmj4celk/zDy4B2tCcu182ZCZ9Qm//yeMajHUrREycCA1pWfhlmM7Zk+KtUPtbqFmz 9n84t/QO/c5fRKzNcRsqM6tkKq0oYnHdXfqdrKn+EIHUYqnxC4DUR4dZVgTvw3bSugOK qIDrA3SXAh47KA0t28aMZD3hF0d8VxSH8OfGX3oRZbgVJ6rAFwXkIjwzSuMg4UOq+9I9 X6oxI+pvVboFcuAncTMnoAXvXTUs/b1q6jpVfVCYmzUgQbCpAEdw0EGI2GmNXTCrMLk0 zo1SIGBMydu/569myLoGecIULXgtfrLvG7mJ4pZFZSEOodTNi08eqbNipUugorbQlZVG z6eQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756729837; x=1757334637; 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=zsZOhkPaRGuLceh4X0WyYGraOTpsD0tyj5yjo8FiiY0=; b=onEH2ydfVeXfBAc7+XbZ2TlIoiOqkB5ue3Vj4OeEUU8rkmhJGSncqVE+JD/ju1rYEl 2VSbglndWPCVvPfZuzJaM8Jlkwx5OWYqp+mf5r7pKCR+TK59wq5FC5ONspQ34o4gMx23 w10BOi/m3eCpqn9KqbyMJ0oWjPYSNzImKcaZHFeqPvWHzLmVEsMZhVGTl/FC/6PM5dI2 VzvPqY4WJ0jIYCbmlHIU2BGJkxnNbJtoQygiUgFGWmT/ibTGhgVyi++Die8e9T1UMHye DrmbhQE+vyi/n3cLo4yRC3m1YM/40cp4RPGawgSu2JqcKKSIW5xN9NpWV1S42eyOo4F5 oZjw== X-Forwarded-Encrypted: i=1; AJvYcCVKKeoyjCkTIPuXDczTR8KRzO1PiobmymMmafThPYONrPawOgaMNuq/VGBw8iZXye8t1RAwoaaBq6Buzj8=@vger.kernel.org X-Gm-Message-State: AOJu0YyiQuxnk49EJnbDr5A2poUXdqXO5+6AHWgk0ZoJ0cHOhhnsX0+3 F97ZBFI15pjM9uoddoM3TrYXmQDoz0RRv037QBdTw62xl7xLVmBcdf4/ihU1fYB4vCo= X-Gm-Gg: ASbGnct27Cy0U38lb/oYCxAtt6PYz8ttwsPNKlIw7JFrVrgI0q60KSzKvYK1pMMJzPJ xsrYqBY326ymUA6UrC5OQ5CJeiQg0XlXfjsOfJnHFyXsSFH2kx8X5xhVU/7HDpDpqnT7MQn4YOl sBZdB5iNZIt+PW6AZw7Ewm4wClw5IZ8ruxM2YLHg6NuiXyYOsl84zZ8k1bE9FKbd72nOArQviM3 T2jUHeKJArWuAr4zMeOhyKbU3AkgqwFdypa1kmbYcVxgAy/lnqeoDthY8AmNfPwjGhS4bvmhtD8 N00KiGS5+/MpQgWlwDhnLqyOHuma4OeMyu0yBJ52mwYrd02ozI8nLi4dGT5PR/ffbcCeKMZuZBx 00RvSZU+yjqy4VJbhR3FvNndC6Q69QkrvpUFj4n/sqagI5fgiIIj945koXA6ddbq74yjs7bbDdY +uYq+ccRzhNO0h/8Zb3OTbR6B1+110ytsOIoNiHU6BoMM= X-Google-Smtp-Source: AGHT+IFstp7E/MWWwOR+qTBJQyGJxGcYxozoNshVEznm012PDsrkf/9rgyBeaLmaNYqMwjSZul3Srg== X-Received: by 2002:a05:6402:5108:b0:61a:843c:2dec with SMTP id 4fb4d7f45d1cf-61d26d79037mr6760187a12.30.1756729836992; Mon, 01 Sep 2025 05:30:36 -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 4fb4d7f45d1cf-61eaf5883b6sm255566a12.20.2025.09.01.05.30.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 05:30: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 v5 02/12] mm: constify pagemap related test functions for improved const-correctness Date: Mon, 1 Sep 2025 14:30:18 +0200 Message-ID: <20250901123028.3383461-3-max.kellermann@ionos.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250901123028.3383461-1-max.kellermann@ionos.com> References: <20250901123028.3383461-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) Acked-by: David Hildenbrand Reviewed-by: Christian Brauner Reviewed-by: Lorenzo Stoakes --- 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..1d35f9e1416e 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 *const 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 *const ma= pping) { 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 *const m= apping) { 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 *const mappin= g) { 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 *c= onst mapping) { 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 *const = mapping) { 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 *const 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 *const map= ping) { 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 *const 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 *const 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 *cons= t mapping, 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 *const mappin= g) { #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 *const 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 *const 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 *const 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 *const= 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 *const r= ac) { 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 *cons= t 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 *cons= t 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 = *const 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= *const 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 *const 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 *con= st folio, + const struct inode *const 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 *const inode, + const struct folio *const folio) { return folio_size(folio) >> inode->i_blkbits; } --=20 2.47.2 From nobody Sun Dec 14 06:22:04 2025 Received: from mail-ed1-f51.google.com (mail-ed1-f51.google.com [209.85.208.51]) (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 D2915341668 for ; Mon, 1 Sep 2025 12:30:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756729843; cv=none; b=B+SSnAME+4VZ8IIPgfTXgH4WmDpV+G2eEckRB2JS9CDptzhC2D4ezm8zj3R3GcInLBl1EMvupnfM+fwJ+LHUUAIvTB5Y9ch3Q5hzwY3j4d3dOF0WCaU5mGpMCs4mANrveBPYmXimIurw4sBV7RiZS1RN9pBxekHJHNh2c3G9Z3I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756729843; c=relaxed/simple; bh=9n+C3fET0UdrKfrPUwqRR2f8H4KY9e0xGraCp8J0d+I=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=fS/I2ViM6g5F++W3hQHEakOGYZiWoCTgJAPoXRBt16IJZwp0PxTneXEIa7xszh2JTpm3UkYOqK/N83NBCWG+QArxJZ6OcFoHHrOQXoJuQ5uWejmIC6x5odNaerM5ybiuxvO1Fibe/8RMm1briB/eAYbSF4v0KkBD8cRwhWrJS+o= 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=iaW8xa4i; arc=none smtp.client-ip=209.85.208.51 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="iaW8xa4i" Received: by mail-ed1-f51.google.com with SMTP id 4fb4d7f45d1cf-61d3d622a2bso1724081a12.0 for ; Mon, 01 Sep 2025 05:30:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ionos.com; s=google; t=1756729839; x=1757334639; 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=URv9x64q4vLQVSw6o/AGB0bIgfNWsPBlnMBV30KLfzY=; b=iaW8xa4ixhM+LTYGmev2az60zgpZWvI91xXea08Io5F+m/O1gwS00FegsyOOF6sKb5 /4+/q770mk5GIELcOT032omeW9cv5OWVvk6bH5ogG+DW4EPciuqKuvQXKgXn1OWIbC85 k0xsN2NehDuYZxbkB2QBlEq4Y0lnCHVFXGgaO+RzdA8F1j1psr+XIs7O/pljsVu3IXOe q1MaS9Df+fQstecqkfhvBWyb8NABez54OdePJLh1xdbq4t8FEOPp8caNQi8tfInuGaed ygVrEkcEhInnYBUp5/z2S2Z1tuPGcbYENIlGC+1hRQcHvM9nP/LijLQzinoaKXyCjSAF 8iuw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756729839; x=1757334639; 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=URv9x64q4vLQVSw6o/AGB0bIgfNWsPBlnMBV30KLfzY=; b=K075bazcWqcI3dZQ84WCwTeZ9vpZ8jXH8QOkgS9MrNs8n8Y/pcJKzqch7Z0AwJl0Yo xu9/kwhm9jMRpSKLeiQbYHCOvC02yLlz9itj2hCGP0mxQYZ8sqwznU87VFyUuYUHYt7J c3+Iqiv9HpD+14atjlBhHiMZvTRdBMGL8HOlwakRXhJ+GtaDEac3UVq4TTBHY7sNgOFc OB+aYacVNoczjSBTArCCHSSJfIDP4DppKL7ubH9xEmZdNM1LHxhv0+yizK3fSl3OsU+R LmUywmFwP+5bkOtK/ZcP+yHRc9p/aZQ/d5+LUTLfWgl2X9wk1pGQcoK4KGCqREuFB6ZO fqWQ== X-Forwarded-Encrypted: i=1; AJvYcCVDiC96h5rM+oAf8sHoBdCcPKHvEGa8FuZ5A1DJo17cU1GHZh03xAsdW+KJz6vQrWQ60oBMMF0BParSCgI=@vger.kernel.org X-Gm-Message-State: AOJu0YxBfkR4oU3JMBKKSyRQU4UUIdntSlfKlDRlRS6wgqsFHd450FxI smfG+6SWTrfrgDEZf6r68cOI/P/a/otkJQrwSvKi5dXj07fWE8oJCn/2zigDL357RVU= X-Gm-Gg: ASbGncvUepdWvSE/pcIWQiZ/6OgGGqBj0VXAGLtZPfePSGWbinFleCi/hDoN3EvT3qw RK4b/k+I92A2lCB5QNRUZXXolbuyuNhgF32RDiljCJnwNJKEa5Nq70L6OjfOAzyWkpYC3kqm+Yx o6y1NnEasygpUmCYdYh75usGETyIg560cpdL7JvTxNxc39vfGSSR/dS+7Y1qe0Ep9Ve467jdge/ z5SiiJMaNH79Ubv7tUhFlHpwgCyd0ZegVlCR8WRAA25xVYsVuCaYNweMrCME+6Fzk4IAWzhQvED Cm7EnZVW7pUOiPURwceTE4n59qJnDVEpkUxVG67/vmFJB0YDBo75WDbAJk0tishyIv2gq++iwQ1 rhBBvII38JLpg649XsBNmBXd7LfzkOyJlqML5jlyZjOYX7JRQqBsZ5mAi0z58Ge8vxdZSXfe4By UptYO9lkhNRsxEQynqWyiPFA== X-Google-Smtp-Source: AGHT+IGvocu+GUM7r7JllEB1alYpzYWhNpDwmZUi+589Y2v0utgEYLLGAevBr2manMrYMhc61uAlCQ== X-Received: by 2002:a05:6402:504b:b0:618:3521:6842 with SMTP id 4fb4d7f45d1cf-61d26d9c52dmr7127139a12.16.1756729838873; Mon, 01 Sep 2025 05:30:38 -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 4fb4d7f45d1cf-61eaf5883b6sm255566a12.20.2025.09.01.05.30.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 05:30: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 v5 03/12] mm: constify zone related test functions for improved const-correctness Date: Mon, 1 Sep 2025 14:30:19 +0200 Message-ID: <20250901123028.3383461-4-max.kellermann@ionos.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250901123028.3383461-1-max.kellermann@ionos.com> References: <20250901123028.3383461-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) Acked-by: David Hildenbrand Reviewed-by: Christian Brauner Reviewed-by: Lorenzo Stoakes --- 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..9a25fb1ade82 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 *const zo= ne) { 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 *const zone) { return zone->initialized; } =20 -static inline bool zone_is_empty(struct zone *zone) +static inline bool zone_is_empty(const struct zone *const 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 *const 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 *const 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 *const 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 *const 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 *const 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 *const 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 *const 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 *const zoneref) { return zoneref->zone_idx; } =20 -static inline int zonelist_node_idx(struct zoneref *zoneref) +static inline int zonelist_node_idx(const struct zoneref *const 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 *const 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 *const 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 *const 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 *const 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 *const se= ction) { 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 *const se= ction) { 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 *cons= t section) { 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 *cons= t section) { return 0; } --=20 2.47.2 From nobody Sun Dec 14 06:22:04 2025 Received: from mail-ed1-f41.google.com (mail-ed1-f41.google.com [209.85.208.41]) (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 AC9A0341ACE for ; Mon, 1 Sep 2025 12:30:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756729845; cv=none; b=Y5gh97J1acPD0o+gEYJ8ZPGAzmyNAYyVixUQP8fFS2Q7vWTbNtCfmaJ87uDIQB5c7IRCx+J6h8/w51pi5tBcIwz/KXkHpadmsEVfzIOohkaeKl5vtzjCGY0hAcd1KNO+cn3Yx7wMPTWAuhk0lppcmzdHIZfr/UbtJg9XjuaUC3k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756729845; c=relaxed/simple; bh=JLsm20nRUfCdVD6uJy+GUl3NfrLb9BR0ocnDc7c6Sws=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HJeP3NwpqHFvLjhl5DfJc/y2bMdtCWKP3DT/wrOPJQ7n21S1YGkH6ax2zGamEIH2zyz6E5DLBsqiY2mT3Z+QP5UgxgoZVbQ5xyg1U4HufQV23Wna5nYYWTHDJYHjy+Y25pwTRtf7ejAnpI9ZWariXmJU1hPDvj3CM1r+dqROO/I= 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=XP7+ZoAj; arc=none smtp.client-ip=209.85.208.41 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="XP7+ZoAj" Received: by mail-ed1-f41.google.com with SMTP id 4fb4d7f45d1cf-61cf429f4c2so7230002a12.1 for ; Mon, 01 Sep 2025 05:30:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ionos.com; s=google; t=1756729841; x=1757334641; 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=zbWUBNes5mrbySu+U4Jj7Tp5fvMH1UIkvlFNU4FTVkY=; b=XP7+ZoAj2t+s/GqoFImqvaRcFKXis5a6i5gTR8BK58n5jcvvJvZHMf6vUAHpplIU51 +SbrYotB8qxVo1h8sLJ84e8ImOgY98uja9OZndbkvHgLgHteEOLQ8edqMl6Eb4uivxya /9x2ggMJocoeC/7pAFQi6yrww/lmHDMRDlytUnW84ZYu9FuRZff8dkS5bL1Mc5k7iJ7+ eChSaNk0sssJNnCct0MtOPjNu3J554hm5e77ImZd9KhHTI6Zn+8DWLjh/cTWTLUamb2K B3JEl57OmmcqJ/CZNam1VstrIWRULwuzdFIApVWAKSIKeChVcrm3dkw9iffdQEDGUfmx 5ADw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756729841; x=1757334641; 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=zbWUBNes5mrbySu+U4Jj7Tp5fvMH1UIkvlFNU4FTVkY=; b=LdOFMbEf6bQRAtnerOu9yxn1Nxgbjk3p+0+YBv7qGCpU8UGmQvcK0Nzb6GV5w5D7nf N5WqkwSGa+PYypnyptjYqj8erRH3VCFEECD/aWIIk0kzqax/Q6y9bKwtDNdjWC+hY4TU /ag7w7gy7dDfdiY0pvR6T/LHx+HZQSN8N0m/jZbEdowVUj4Kiek+zsl/p6/wFcy3faOO s2JcwNUp/mJiXKklg+tTPMQJflnZ2TqaJh3IICuerKVjc7tYjIAMiQvgLYpRBw+IUXgM 4taP/cQRH39YxcDitcRvWv9WTYW6k7QT3p7twlLoCLuMtu+rFQKGnpnR/LywsmpwpjUX T94Q== X-Forwarded-Encrypted: i=1; AJvYcCW8Pqqgdq82IlrfgOY1vJmejW85fknnsrsAttTIChhoc3NMNn1KB56AZYpKF49LBq6CWPnjvzrnBiiXTcU=@vger.kernel.org X-Gm-Message-State: AOJu0YySJEDa5VSQhm28ymuVhu+cSXPGcFSzmTJRbct0mHPkI2RfeFrl GN53EMX6a0bz4E14Xc+nnXWzCKG2Tae19hAMav29UcmkIGP4CEb5DK5GDR4D7lmdv4Y= X-Gm-Gg: ASbGncvMgzrROo89j2avBa3ebzHZGkRvYYHe9wgKh6/iBLd5Lf+DPTUMXlm/q4U3RPu mqPall56lkUWPQacOrEpYwVdYKNsc4pyNo6YZoSivnzz8jV2h/cwgFAP3SVvvn43B+69Axu1JGQ 9H0R29tp33NXhyriViPkSKmp8QHyLVloGZn+PpKsrTwmhHCHEVjejXOOFfjMjsstBXbXoI8bb2W ghEPVnuI77gyLKJwEmwrkYtPIgM4tkdu7n6GpYnTpLM55MyTpjZJig0qb57i3PeeNYObjKvQUT6 jGsuEws346Wg4Woi4u9FFRnyXEKj5Ye7nfrZwSZ3a+2Wb0dm5ntHo6emA1Syn4tqH47itBtKTbG xX8PWKcIIwxPKc1YZi9zrVWvbg9c3uP9Hzlsk9KXeSVGBXXiMVdItttuBseWELrmB3TisXQLXr6 kAclIPV6aJX/82gTor4kJwpLf39aAVuEyK X-Google-Smtp-Source: AGHT+IGRe72s+UHTnGokGr7x1pyG7G81cHBjYzB5waC3bIIZTDAVVMuEn5lgB7KxjuKhIwvrTnRPsQ== X-Received: by 2002:a05:6402:2554:b0:61e:ae59:5f04 with SMTP id 4fb4d7f45d1cf-61eae597256mr563365a12.27.1756729840654; Mon, 01 Sep 2025 05:30:40 -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 4fb4d7f45d1cf-61eaf5883b6sm255566a12.20.2025.09.01.05.30.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 05:30: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 v5 04/12] fs: constify mapping related test functions for improved const-correctness Date: Mon, 1 Sep 2025 14:30:20 +0200 Message-ID: <20250901123028.3383461-5-max.kellermann@ionos.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250901123028.3383461-1-max.kellermann@ionos.com> References: <20250901123028.3383461-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) Acked-by: David Hildenbrand Reviewed-by: Christian Brauner Reviewed-by: Lorenzo Stoakes --- include/linux/fs.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/include/linux/fs.h b/include/linux/fs.h index 3b9f54446db0..8dc46337467d 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -537,7 +537,8 @@ 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 *const mappin= g, + const xa_mark_t tag) { return xa_marked(&mapping->i_pages, tag); } @@ -585,7 +586,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 *const mapping) { return !RB_EMPTY_ROOT(&mapping->i_mmap.rb_root); } @@ -599,7 +600,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 *cons= t mapping) { return atomic_read(&mapping->i_mmap_writable) > 0; } --=20 2.47.2 From nobody Sun Dec 14 06:22:04 2025 Received: from mail-ed1-f46.google.com (mail-ed1-f46.google.com [209.85.208.46]) (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 5BEEE3451A5 for ; Mon, 1 Sep 2025 12:30:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756729846; cv=none; b=sMx52tProqD9akVl7QSIe6KoTeQhk7fl/ouPaJC1kLlG9r4zAi99pdwjuNadZrkArNotUBcCY2ayHTD7VQImTsmuHr21Fx3S083gJddRLZTN2079FnI8O7DRC6XLafOSirhHUi6NaPC2Of2FPEODMlcB6V4AJCX473iPSym4NEA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756729846; c=relaxed/simple; bh=+cxA2vPSNHRr3wvM2KI++2tH84Pma8OrgGCHv4aVaOg=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=BVAAqDNpDosQCBsPGP2wDx8KB0OZ68DZNhVSI5hSb4dTPt/q9BYK2dxPusKq/4ete/MpZ4jJUjC8Qve8NADzqcgzK9eHGhpnkafU3r0WHuMnA/O1F81Ew3Qe8RgPgA5vpk6+dQ7j4V8BSJd5AFuoKNgAHK7kWuDCj6/RbiByt5s= 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=hZ5F/T7b; arc=none smtp.client-ip=209.85.208.46 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="hZ5F/T7b" Received: by mail-ed1-f46.google.com with SMTP id 4fb4d7f45d1cf-6188b5ae1e8so4338882a12.0 for ; Mon, 01 Sep 2025 05:30:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ionos.com; s=google; t=1756729843; x=1757334643; 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=qlcCpJbD4nPkPuY3yUCOwN5ViUagWq+iHpO5z1mw7KA=; b=hZ5F/T7b5ogdP2zIwS2beyZHiGHk1+XC2eeXxcULdlvnW1Qfwq3v3qhdS3HzZ/ke6i 5aofx44Vci3okcSvD+NJ5d8aUUe81DaRYRI62gRGHaQ356kUTRWx4PGjmcbA7+R+Kk0W w5CIFFJJ5MwUK8wOchLuAQ+cRzKPe2L0SPg0C9B92RKpjNxYzM8HJ+ZB9Jvd4NqCxnuc FosDiN5pEmLLsAP/Xh7OUY6aKsvmoVYIgNzs6L/oiewJa/5mjN6m0MCx3Jo0RwHJf72I eE9i/UnBEou8WSX3ZjYyB3V9cbrUZX3eF8vQR8yykRh+Wj/Fw04dXjpcJtR9Yx5tP11D Mpbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756729843; x=1757334643; 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=qlcCpJbD4nPkPuY3yUCOwN5ViUagWq+iHpO5z1mw7KA=; b=kgy94i3jAUJVLewwymJfoEUG1oIekv32ts2fWwkpx5Irj+zNsZX1U4U9gDOGEBd0ev ay+lTsMGkESGELlrcDfTufgiASChfpi00+hcMLdxjKP+tYDD/0NNWiS7WL+wOaAnd5tT IH5D+GyQ70OAi4xANeqobiHZkHkEP5wiIKaPZqucjbdZ2BXeIN7ca2Td/6g1GMMjESXU GNHgtEWu3TrQhpkPOUYwgeeO89mm5GJdyiM7gkDmdzCYbpM98vfk9wuyVQrthg9ulplL wVPzC81RqQ1Ff3tju4ZlsJ0zCECb0c3riR6rzW22B8U+4WC3kqmn3QyV5yEvXWPoBRWX Xn8g== X-Forwarded-Encrypted: i=1; AJvYcCVt6X3D3u4HfhNL6eqasbDat4A1RrXG2F68miCw1Kd9NdPSeOADJCPYADEuciVyyEqgqQlEH91Zdt/Av9Y=@vger.kernel.org X-Gm-Message-State: AOJu0YzmgMNXnbO13o6pybvLCM75o/aUJCqgrzktRRLvj9V1g+NvKuTt L2jXpiOTLYxNrev0c7j5eeuNCDruEfxyfZraRao+3HQqgqxc8/DN4aZc8LM9ZzQcNuU= X-Gm-Gg: ASbGnctPuBavKS4Q2ZDuf4+eV32ZnIhd22zeO41MA7r9qSCrmHlrFt+AOI2oe0JXV4I Vx95VsWj4ne4rN2za6mHRoNFngtRIdewjFyiSGV8x4wjeaW4dyoHrPeJTAzZ8mMeBhgJXpxiS5o iZDf/gt4frA80ub02XCyEtGfWV4PkiU5EkAI//mY00niHlqHWRIBbA1lcvRJk9gLIgWge5oOs33 oiiTN91B9jW9K4pG22kcAxui/01QILfSsMISfSipSDhCA/JG9wqea9HgBDaU13LY7heCgHZrtlq D7zSQrU6DhryCSm97Koh2xASUwGGW8ejzF6JagIXtP0UW1hEl7QVrJD6zw1R2wMVeCVOhNNqPHM KP4sdprh1ZL7uOK/us45b7ac/Zz4h6gxqcQcfo+7/YjCtVNUQowdENGTm/ADEUopjt8Q9sBdxdD ucc4LPrWkpc1EnzhPZw2dFow== X-Google-Smtp-Source: AGHT+IFO4D7bAoVhJtV1jctvP5v6tn3ybzaRVaB/XhRQIb32ZxZbdyWzguubllrCoRGqVBHHdeayTw== X-Received: by 2002:a05:6402:52cb:b0:609:9115:60f1 with SMTP id 4fb4d7f45d1cf-61d2699f676mr6340759a12.16.1756729842457; Mon, 01 Sep 2025 05:30:42 -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 4fb4d7f45d1cf-61eaf5883b6sm255566a12.20.2025.09.01.05.30.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 05:30: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 v5 05/12] mm: constify process_shares_mm() for improved const-correctness Date: Mon, 1 Sep 2025 14:30:21 +0200 Message-ID: <20250901123028.3383461-6-max.kellermann@ionos.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250901123028.3383461-1-max.kellermann@ionos.com> References: <20250901123028.3383461-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: Christian Brauner Reviewed-by: Lorenzo Stoakes --- include/linux/mm.h | 2 +- mm/oom_kill.c | 7 ++++--- 2 files changed, 5 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..6a888a5de2a4 100644 --- a/mm/oom_kill.c +++ b/mm/oom_kill.c @@ -490,12 +490,13 @@ 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 *const p, + const struct mm_struct *const 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 Sun Dec 14 06:22:04 2025 Received: from mail-ed1-f53.google.com (mail-ed1-f53.google.com [209.85.208.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 2715A3451C6 for ; Mon, 1 Sep 2025 12:30:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756729849; cv=none; b=o4Cjv5QprjfSFghX9GjOlEPUiYvgkbI3Q9oEz97VFAxBSGr8xXo/7i5dNJAXB+QUDO6yraKl/x3aifMUU28uBDWLWfrphb03fIIu46RnRPRtbXljd1+4gHskPozQNg/qxRANRXd1Vb/Gri2ZpQcfoERZhRp1gkWZ4NSfNkoETpE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756729849; c=relaxed/simple; bh=QRQYJFWqU0e0biGrVss+FBU/g4YEAqNxhEPzepfpQBo=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=R6KsQVoveOvpKM6Lziw/FQAQ9XZgMLqaMrFhnroz60pTGOyDMBeme4A+4eZLmZ35eQuPwlPJ3H+QU+3Mu7V+zX/X8XujjWx8JNa/QMUL7739tlG4aPSnAERib47H5+Wo3943A2Pf/wELECb7BWM0eUedZMxfmoZXc9Ud7Jdt5Sk= 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=Y6Z2WKL+; arc=none smtp.client-ip=209.85.208.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="Y6Z2WKL+" Received: by mail-ed1-f53.google.com with SMTP id 4fb4d7f45d1cf-61e8fdfd9b4so2130106a12.1 for ; Mon, 01 Sep 2025 05:30:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ionos.com; s=google; t=1756729844; x=1757334644; 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=uKgBVUzyj+6dcxmt1PFXvQk/IZiLcynXJnKCzF2l15M=; b=Y6Z2WKL+yPIQ0xFKdrX+5jY+J3aSuFfMpSYQ4tLzUezvNZkFjrfVrLt5PduYUN+uTh DdNZLDlSIIs08oAhAi5E72e2JDxq5lXlp7sA2EZT0V3GlUB3me83xYSyQGRZzqGfGtD3 1YxnTgXie5K0b+e490skFkYHD4RNfeAiu1eODPE9zGF8OKwCYtWG0L/WZGFj8lk3BDCp 1f+rXiJm3Y+ZLXChtnkNWXqQ12RbMe9rVMg5giZ7BxUBMm5VNrFmbXZHylj6ccBt3lzH HvTNdFqZZjtyoj6E/5SKR2c2TBGcrPVTX64xcgaTQQDJPsF9yjGOKkD0M9auTHOJsdJL oxNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756729844; x=1757334644; 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=uKgBVUzyj+6dcxmt1PFXvQk/IZiLcynXJnKCzF2l15M=; b=Hv58nmjM8xHDp6oKNv78SB+ZhSYXjB/e+FNg8+TLSSRpPZE8XD+fiGQ64rKObmHtQk gg7mf8aISIfymns6Xl+7T48ixx3/J/4f7JyOIGw/FeWPutn+JhLMVxCDJFNvuV7Rv59X InV4V4X+mlnjINvu7prcVE9/TCBDeAsm2Gsd6D121KMQFxMNrpZlH3BwggFxpn5hc5iC Krt4rMoZIzkwFSveIwdv4Dftj41fZ7KtmdmJcBOq8kEqC3SqPAk2tow3iHLrSSkOU7hZ o/LfLlpAW3GBTkInOgjwieDHRtLFMytc8uJZaCiEg3Wrc5Zfgv5xzdH9p9WKlkjqBC2v iiBA== X-Forwarded-Encrypted: i=1; AJvYcCWRRVncrp+SefGDMesc2gxktp3H67Tzwo2NBtW+ThQRmK36RM+N63IEg2RN2eKI9JVmtvX0tQc6S6nc47Y=@vger.kernel.org X-Gm-Message-State: AOJu0YwqHBzkN+S2+GwrWj8arKa8XmQ/JcAEi85Jse0iUB+OSKlNqujA xtNKPc09F9TLRhPvo7BqGfMLPRZ6bhZK4hVvSnahVcJ2MJGFhrK0zr5NOAML95Qp0CY= X-Gm-Gg: ASbGncvhV9wMidYfml2y3iRKcCKfniL617wMf5R5zK86jwVuq4b5DPOgrKds3XofW3w OTkbKOEm+mgeuFgC237p9AhIhhQ+4PUE0YBBdatCc7v+PwxK/cWIzKAl/w3WrLeqYc6y3mw5LYG 0ZF2z0u6M/mkmqgy76vAbhezzbsn8TLsyWlE/NKibc+BTA2APreMxd5Vw3qv2YDoc7d5zLvF0nX +Gp1cH14P05jIdD9/AMkZm1MqP2Q+1Dg6EJsO+QLXWAC/0WtIJJcIJQQm79Z6w9XcSTGFgcxzv9 Thhtyi+Nx+i3dUzYB0aX72Cu7KINyXhaeOK5lO5OJD7LB7TIaW28AjNKtR23Edx2Zsf40R5ppoz hOjm2VVkmLLIM0jy2nxdryzMvpi2adIAmsbZHjCk4r8c/KVBgEuvf9qDJOXTC8jD3S8rnp3YDVf 75KeTAMpordjG7JLAAsP8+GmzEldPnKsqz X-Google-Smtp-Source: AGHT+IEpijDtb0z/0WWEMHXl7q4Rmv4pw1RD0/gKYGC8MsYS/XMq2PnLTln3mfCOBW3uU4B+hzFViw== X-Received: by 2002:a05:6402:325a:b0:61c:1d41:41bb with SMTP id 4fb4d7f45d1cf-61d22f522e8mr7331559a12.16.1756729844370; Mon, 01 Sep 2025 05:30:44 -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 4fb4d7f45d1cf-61eaf5883b6sm255566a12.20.2025.09.01.05.30.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 05:30: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 v5 06/12] mm, s390: constify mapping related test functions for improved const-correctness Date: Mon, 1 Sep 2025 14:30:22 +0200 Message-ID: <20250901123028.3383461-7-max.kellermann@ionos.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250901123028.3383461-1-max.kellermann@ionos.com> References: <20250901123028.3383461-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. (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) Reviewed-by: Christian Brauner --- arch/s390/mm/mmap.c | 2 +- include/linux/mm.h | 6 +++--- include/linux/pagemap.h | 2 +- mm/util.c | 11 ++++++----- 4 files changed, 11 insertions(+), 10 deletions(-) diff --git a/arch/s390/mm/mmap.c b/arch/s390/mm/mmap.c index 547104ccc22a..c0f619fb9ab3 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 *const 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 1d35f9e1416e..968b58a97236 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..f5a35efba7bf 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 *const 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 *const 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 *const task, const 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 *const folio) { struct address_space *mapping; =20 @@ -926,7 +926,8 @@ 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 *const mm, + const long pages, const int cap_sys_admin) { long allowed; unsigned long bytes_failed; --=20 2.47.2 From nobody Sun Dec 14 06:22:04 2025 Received: from mail-ej1-f51.google.com (mail-ej1-f51.google.com [209.85.218.51]) (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 E804334574A for ; Mon, 1 Sep 2025 12:30:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756729849; cv=none; b=Ofd9h8XBUkp1OdKEY569GH9BwK9QTOxQbIZx+lGPhYFg5at1XfZDr6CguqUdl27eTfilfX4SmkvZl6nTrNVimlvVnzt2EP8rBqM7/O85LtOsXwXege37+oshG80TZ/bsztp4XfuG2KGKBX8FTpc0HxSP/QWoViTWDEcFki3apdQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756729849; c=relaxed/simple; bh=oY+kVrJSUNMT6cURQZxHlXP0Zp0Aq1m5o0k1qFqpfkg=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=W5fUxwUgnKCukfh8f9Jo4G/MGzey+J3WaXbJE8w7psWO8foPgCTNZphpILuiPSDna75E43SeNmu+Tq7IC2C5igF+65b6zloCDx+arApEAUrLYbqpl12T61qLYTZf7+Cbibwr1T5zgtP1Y6EhrEphPLJm4m/8aqPvJZgOmWxe3qU= 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=IGWxn0AM; arc=none smtp.client-ip=209.85.218.51 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="IGWxn0AM" Received: by mail-ej1-f51.google.com with SMTP id a640c23a62f3a-aff0775410eso395360366b.0 for ; Mon, 01 Sep 2025 05:30:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ionos.com; s=google; t=1756729846; x=1757334646; 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=TakQ8h85rIAa1grDUxPMVyoALGVgUpKOsAVdRA9oxes=; b=IGWxn0AMjS7kGyrlVUR+4CL7D3H6J/2wHRGBk0IEFRRq50Z/9BMQkC3kD7SFCdanyf LWoObgGoAcB4Ll0Mrg99BgD1jqghxx1/+4TeO1cUqPvlh2ZJZTDK3jPspzsN4vXPzIAd +G5FCUQErcl37gyIi3W5p+vvIW4chQ1C7AmPLfwLXIEwlgO+FHsVjUek75c2caWvPTaz dIVY6jvCc/5S5gpJh2LgqoolixwNxw5xosp6bEIOyGHEyEOu59XAE93ObyWJlQ5s9UNv 827S8WtDxpF8JF1lgnec72E4HJaKH32O7PAmo7EcuI5LSq6jP2YvLlegnbFESRjv/FuQ GonQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756729846; x=1757334646; 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=TakQ8h85rIAa1grDUxPMVyoALGVgUpKOsAVdRA9oxes=; b=KBQtYb2/QZ3oEkg5dmlsXwUFtwrQ+M7RbsCmZGpKr7+1TbcHhZLrMLh4GoPwl7+IWG Su1n3T4jvXc/xz2clYaHRU723pBimV7klX1nScGok2sjobSn8TAu0dXKPyWwqKgjk3LC NE9xPGNvAcV4UodmgO+2idwIDJ8XYIiVPqqQTzJpKCwGpdelBrmT76TfgAmEwW9dEZPE azPv1VwIc/fj0IwgNCtCTwe/1xeO7AflSKHgtWD1Xgj9kqHS4axMfoyr6boq+eqUGFpK ajG3BOySRw5KOmNGr8D4AMUqLLecxH0rLUxfDDeeK1N72upfKYIrzps9t3kPwjcGZ/8k +1/Q== X-Forwarded-Encrypted: i=1; AJvYcCUyj7IkA7lUU7+mnAyWVwBbQZGJDSad0OTH2ChtQuNP/zLxFEcqPypAytxketFNNQdcqFnP3sivpJt4DYE=@vger.kernel.org X-Gm-Message-State: AOJu0YyynMCjspNUTr+85KRAUE5P9nHrZzWZyWFNKpJZL+R4kMz10ICJ Oa5EkfnQOWf5meEtnmdnN0NXXZxGuWv2y/jTaXwxydTA07qyGBzqZa57Hp1FYNY5r/8= X-Gm-Gg: ASbGncug1Mit6e4wYaEZP9JiMhkC2XkuiV/uh+ypvbqljEaulsqP6G6wz6pOMAcnA2r c00dpG6ERF/EUYbIQKjqP/FR5nr6m7GqeMcn7HaXeTg16lBsuRKcXa/19eTY5HCQyMrZ8uduAj4 tZa9aBCne74TYyWuU+MiNFV+AbTLPWrmqTnHjDH7EHNl/cK0La6o2eru2DUTURML+Zfb4/yHCFJ +eiF9fiV9aL8/tXcJAmmAKhrQP2BRsemUmJXv59EaCu8U5hSjOFbUlSmB6fz3+LRPDUo4La1Zbm 8YmCgox8KpqhRgtpwdTjSupbEoJVTv2N7w1/FxAzSROTJvdoNXzAJWxkC16N+qgwmNL35aHpYZI gTSKVO5etubdcqdk89ukSpFDPiX8DLZY5c+fFG4Apv1kKHbuJYWTSceXOpC30C9HURKnRcMb8gE BPqp5kbrJ/HOVpNmD18AWbxf4+sFIAM5pE X-Google-Smtp-Source: AGHT+IEFyUt84N4Cv2kdLXAVUn+1e4FWCkv0k7DfQxCZiqDejVRSf4epoqkxZrOG2Uh7zwz0dBY6jw== X-Received: by 2002:a17:907:7f1f:b0:afe:94d7:7283 with SMTP id a640c23a62f3a-b01083377eamr695696366b.32.1756729846177; Mon, 01 Sep 2025 05:30:46 -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 4fb4d7f45d1cf-61eaf5883b6sm255566a12.20.2025.09.01.05.30.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 05:30:45 -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 v5 07/12] parisc: constify mmap_upper_limit() parameter for improved const-correctness Date: Mon, 1 Sep 2025 14:30:23 +0200 Message-ID: <20250901123028.3383461-8-max.kellermann@ionos.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250901123028.3383461-1-max.kellermann@ionos.com> References: <20250901123028.3383461-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 piece is necessary to make the `rlim_stack` parameter to mmap_base() const. Signed-off-by: Max Kellermann Reviewed-by: Vishal Moola (Oracle) Reviewed-by: Christian Brauner --- 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..c2bbaef7e6b7 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 *const rlim_stack) { unsigned long stack_base; =20 --=20 2.47.2 From nobody Sun Dec 14 06:22:04 2025 Received: from mail-ed1-f51.google.com (mail-ed1-f51.google.com [209.85.208.51]) (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 4159B3451CC for ; Mon, 1 Sep 2025 12:30:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756729852; cv=none; b=tKyOOmMwq2KYuPORDrVhGvqPvX9PxmNCfFQXQjM8zUNIDQcB8Nrm9tzus04OLmuXOLHsgTY74BNwZMXWq9Xn6WD9o5RvmQi16bAgqcOHAamWzKFIqDnV6lnIsFEEU8v+ILXH7Y4MVXWDiELk0Xr5qxDhgo5zQ3g199exw0uBmdI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756729852; c=relaxed/simple; bh=EPJbyRWxHnT9AgTmdS6KO9CuajUKQ+wmYGiqrI3ZBAk=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=QhYxov95/NGVfG7Oh5Nq2yteMvhgUfxK98Qhd8x2i8Yy6YWDlvns2ZDBtWSHmHGJGzua0c7jDrWfe9JH+EcciPCoeFMjYHc2eoDIJvGbH0bSHd5Bim/dSxTVeJylIjmXKubj6rhWBTNr10oQwkPhmj/VjbAXJhBArdJx5ivCLaI= 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=aHgTrVy+; arc=none smtp.client-ip=209.85.208.51 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="aHgTrVy+" Received: by mail-ed1-f51.google.com with SMTP id 4fb4d7f45d1cf-6188b5ad681so5237648a12.0 for ; Mon, 01 Sep 2025 05:30:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ionos.com; s=google; t=1756729849; x=1757334649; 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=wDGNHui84WsHVpXgfTg7/ZQpp3R8ARaLofrymMcz4P4=; b=aHgTrVy+UXwL9vMATMLTBzYygvkvl1PXOOkgjbsIQG3AtnAibegqVurFbnCgst5vw3 Tdn6BM6pdncPEzEN9ifHpCA8P6Pi4hRjnYSm2XHIsHhjBoa2yZ23NHuGkS26Mta2ynDG hHyJrdulDtB0BpZ5BnpS002ShEm4bThnIuHBA36CXsVQXZQl8TLN9ouFxkOu79st1Lun n/4mA3ksechY3UCwBukK3jOeMXCtdgFo4nnd+QD7ghAwOcthXOafw9+qg7Ty7/sIIJGA Xon6LXD5Nx/5nBd1kfpFV4EZRE0nIo8tJwVUDxwZbsqTwpnlVC8IN3f1JRwVMOGUYrZL 3tqQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756729849; x=1757334649; 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=wDGNHui84WsHVpXgfTg7/ZQpp3R8ARaLofrymMcz4P4=; b=FcCasaqlYhxpX9eVpv9tMezNPssf/9xZCLSTx1MsX5q5cVgwkeJXXXvWaw+R6TDiVa LbK9trRZPJx5b8RfZBUQPc8RsEOiRQix+/xhfFPGGCOHthkx4b96K/ajm5jmshs/N4zx IWxePwKxRR/SL4d0pQBbHc+d/BI4DhkelLKDO4C8whr55SIjaFYSoD6XIF/fOZ1mCN9M F+9c6CY8JkILzEbHzD2mt3WUuek3ihVX3PUOv+auD7Rtyw7rGvSu1N0tsa7bpwQBHO8P FvSWO6BRWvaIK/KFXnP4d07p4Ptj9jF3sq1qVXvn33GPXsjhEnTELKw34/D1EHsRBSTH 1q/g== X-Forwarded-Encrypted: i=1; AJvYcCWuvJRLw4cVnRYJTMNGdFnWBGqU8jQrRZbova/Z331pTx7nbfOEUMJyG7ij+5vYaqUPimx5yEeUcCYW7QU=@vger.kernel.org X-Gm-Message-State: AOJu0Yyin4ZLck36n9VHfoUMaCovtuVkXcBeaOsAKLYBRP7xr9+/BuUI BwGl4w0q2DcrfuiwOaeNXLbyBb+y7LO23y4swW0MY6O98MMFBePDUkK4alv1MWoZnfM= X-Gm-Gg: ASbGncszioT3Sf/InCakoV2EaqVuExnGMScd2i3TpU8RwXI7xRe9/iifXzv1uY+V0ZD l0UFF5bAjShzPJax1LT3Zb4Ebjs55qOhFyfbQG/c9auf7E+P3/dCDHu8GxsuQ1kQUBquuIz7uok mM4qnc75k0XZVLezqMU7pDpQFy9Q+WQC0PB87VwlIM+3c37y9VqoXhtipFKP3XtvHfcpkyIt0oh 8HQ+WCaRjKKv59PPFIe2ABdoISBwwgRaezSKQY4228/ZtXicOldnDY7GOUqvbdP+ALNMhBnjw4+ jnnI6RBSiqzJNjMnSsZBHjlfCp1s0b948UzA0AymNU4xhhVCFq2At9fORcjQslqUi4xCedy26sh /GoRWD2/ZbSVsvY04MGgaRa+BgjQO27gIE3cvU35D1+QGyek4zi49/Be/vOh7e7aV+fapuuBcb8 p/7pcN9JseiSYmhVZ9kqfoKJzYRU1oG2zd X-Google-Smtp-Source: AGHT+IFKdIH/XV8PMBLWofBOVQFCiNzD1MryqiWSI9A5CR0R39RCWddVIJNZ79UXnDKy/e8yeVnjDw== X-Received: by 2002:a05:6402:2549:b0:618:afa:70b1 with SMTP id 4fb4d7f45d1cf-61d26c32e70mr6177153a12.20.1756729848021; Mon, 01 Sep 2025 05:30:48 -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 4fb4d7f45d1cf-61eaf5883b6sm255566a12.20.2025.09.01.05.30.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 05:30:47 -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 v5 08/12] mm: constify arch_pick_mmap_layout() for improved const-correctness Date: Mon, 1 Sep 2025 14:30:24 +0200 Message-ID: <20250901123028.3383461-9-max.kellermann@ionos.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250901123028.3383461-1-max.kellermann@ionos.com> References: <20250901123028.3383461-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) Reviewed-by: Christian Brauner --- arch/s390/mm/mmap.c | 5 +++-- arch/sparc/kernel/sys_sparc_64.c | 3 ++- arch/x86/mm/mmap.c | 7 ++++--- include/linux/sched/mm.h | 4 ++-- mm/util.c | 9 ++++++--- 5 files changed, 17 insertions(+), 11 deletions(-) diff --git a/arch/s390/mm/mmap.c b/arch/s390/mm/mmap.c index c0f619fb9ab3..a47c7133d82a 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 *const rlim_stack) { unsigned long gap =3D rlim_stack->rlim_cur; unsigned long pad =3D stack_maxrandom_size() + stack_guard_gap; @@ -169,7 +169,8 @@ 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 *const mm, + const struct rlimit *const 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..1c243bb461b2 100644 --- a/arch/sparc/kernel/sys_sparc_64.c +++ b/arch/sparc/kernel/sys_sparc_64.c @@ -294,7 +294,8 @@ 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 *const mm, + const struct rlimit *const 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..13bde4ba2f24 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 *const 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 *const rlim_stack) { *legacy_base =3D mmap_legacy_base(random_factor, task_size); if (mmap_is_legacy()) @@ -119,7 +119,8 @@ 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 *const mm, + const struct rlimit *const 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 f5a35efba7bf..24f08217cd95 100644 --- a/mm/util.c +++ b/mm/util.c @@ -431,7 +431,8 @@ static int mmap_is_legacy(const struct rlimit *const rl= im_stack) #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 rlimit *const rlim_stack) { #ifdef CONFIG_STACK_GROWSUP /* @@ -462,7 +463,8 @@ 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 *const mm, + const struct rlimit *const rlim_stack) { unsigned long random_factor =3D 0UL; =20 @@ -478,7 +480,8 @@ 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 *const mm, + const struct rlimit *const rlim_stack) { mm->mmap_base =3D TASK_UNMAPPED_BASE; mm_flags_clear(MMF_TOPDOWN, mm); --=20 2.47.2 From nobody Sun Dec 14 06:22:04 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 29C2A32C330 for ; Mon, 1 Sep 2025 12:31:07 +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=1756729868; cv=none; b=jh2oZft3D/XQ4jRC2VWjQ3y6xXe0ZifNrduFHBpg5jXGBv6KsHSXkoCNvVRc56QuQpPWR0hNk0A7FrqEjzL0qrYxKgyEbTz+xxJiNS2LGXFqacFY7hsWg3EuIxSuVpDssrmpflIQj9q2i5jXZ9ws5Xs4LejeDG6PL/AIxXxQ7uU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756729868; c=relaxed/simple; bh=KDOJlWebDr1r9JKcB/6qXXsMuiPZ+GrvsOQJ8M+vAGk=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=SYmMmTUQ7bVtfS+7QsLZd7eFJHAOqGVsq4iyO5Xbh6gvRGMjBXTzMPL8dvxgE0DMmhaCw9/rRS1A17uso01c2BjcezXH7T6Rgn5625aF8hWNgoXFcbZRzhtLZKf0X+RApCerkWRyUFYmUzUxzPhBbihyqn8nTisvPhT7rMfMBjw= 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=gtXNzD/T; 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="gtXNzD/T" Received: by mail-ed1-f49.google.com with SMTP id 4fb4d7f45d1cf-61e425434bbso1806045a12.2 for ; Mon, 01 Sep 2025 05:31:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ionos.com; s=google; t=1756729865; x=1757334665; 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=hZckJdWYT65mLwvxCWKoPCArrn6/MXXjzKwssfU7w+U=; b=gtXNzD/TCTMFDUpyENiLVyNAO8B0gcHqkZ0pNB2JQD9WreRoTBa/5WgZVLl6fEPdIS bv5elSdUhPOYrl6zB4YbiCTnbOzghPPW8FJAk8Tm3heL74VqRTl6FdTQvVmw+bt5xgA9 rNzk6GcMb2+4nQcy7TmU5UcWHlzMTgCx9brQD+mE2wBYz4HKnQD0B8gBSrkEPl5sM81X unWNz/2JpYKfDozUtw7lq2r2eYtwGhzaVHXQVitDDOH787vo5y0eXKaeL60b+ow0Ksq6 QKh+fFnBGPU1r1vGrfbbIlfUJbzOzBNY71h42Kls8+EUVLqCTJibA8i/qd/bSrXhszlO 3Png== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756729865; x=1757334665; 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=hZckJdWYT65mLwvxCWKoPCArrn6/MXXjzKwssfU7w+U=; b=ZgOtf4PtiwvsrKVSUb/GJE6uiai+1IP/H0gqv0/LCywlhD5ncf/O1W4MHb8fsPncvV 5GJMqDad0UT4NgXF6EEtsO9inyo81+JsxHTAzkOmxYgiDpW4CUVRc7KYM5lENTUHz2pj mWgtdinNY+3zCpZoHhpgLCy0/Os9alR9FJv47xeyhXcwkuvxc52LZqBsRcDcuydH0OhM CIyFzcdadirjLFoV+zAqQB18bmTlM1srzrTPPOhVDejsM/3syrfO8Ex5G0vJnqtSogF1 XUzQHfrOlNzXmO5dAzO9geUfHmpOKCgXPXpjRdrdsi4V3czWo/mWqMvvmJf3J4+AfOYd IyKw== X-Forwarded-Encrypted: i=1; AJvYcCVOEpZXMCQDOG5pCQmvK3Ljkf0ZEq86PnUJrV6QQFMt8leIT+uW/5+qzH945MU8NCKhuyI2sjeFqzUDo6Y=@vger.kernel.org X-Gm-Message-State: AOJu0YwJFG03Jsy+lLMEMGnAOxpSdWT0wbnR16EfebyOrcn/FujxON+P WM3YdLrsxq7XaiGFoLX0/UpEfi6GrbDCn1dNIz/u/PB/p+dqnC0nsF1Qim9h6SfZnQKL7TZr8qZ ii0hBw/4= X-Gm-Gg: ASbGnctb9/0oaptz/9o1QK2xKyiyHtci8ZOmkLoPStCNka6c/nSVqcwxFBc5/WJdJ/U oJb4df9/4hDiknlULinkr6TVEr/EqwbezDWOIFD4SeO1a4dXvJTMxyYVUg+gIJ/K4HHeuuxvtPi avJCLt7hH1FU7tO5B417VK8F4IrZB+Z4TahkHoCXQ+wARwXnNHshzEn1pIsf5bGSQCFkDimgxmX SqkcvSb3IS9maZvvCKBB+dX2GmkFvqqtkUZWCp0Vur478VlOHnzvNW81491q2LRUg1wOy0ceAd3 TKUkI4kVKrlySw0WfTllFmIaZd6Dn6cEd/Fw+11YH7Hmfy+0Eq3WJ9Uoscasn5mOjNRqZFbJWOd tewr7igANyYPqPsvMJxhPlpQ0h/TNFkY9JPiXRusLptDCOzVz2p4PUz77aRQEK6qA2sLuiyEqho KdVvsuhK96g7p9CZNyC5qdPiywM1gko+2I X-Google-Smtp-Source: AGHT+IETxUI3qvvcJof3qThaTHBjP7BahOV3yuMasi46ZJMakvC6EwAs8jjOUppbppRZ2B64GjsX3A== X-Received: by 2002:a05:6402:5207:b0:61c:5cac:293f with SMTP id 4fb4d7f45d1cf-61d26869f4fmr7390296a12.6.1756729850374; Mon, 01 Sep 2025 05:30: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 4fb4d7f45d1cf-61eaf5883b6sm255566a12.20.2025.09.01.05.30.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 05:30: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 v5 09/12] mm: constify ptdesc_pmd_pts_count() and folio_get_private() Date: Mon, 1 Sep 2025 14:30:25 +0200 Message-ID: <20250901123028.3383461-10-max.kellermann@ionos.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250901123028.3383461-1-max.kellermann@ionos.com> References: <20250901123028.3383461-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) Acked-by: David Hildenbrand Reviewed-by: Christian Brauner Reviewed-by: Lorenzo Stoakes --- 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..46e27ee14bcf 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 *const 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 *const folio) { return folio->private; } --=20 2.47.2 From nobody Sun Dec 14 06:22:04 2025 Received: from mail-ed1-f53.google.com (mail-ed1-f53.google.com [209.85.208.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 2C0AB34AAF5 for ; Mon, 1 Sep 2025 12:30:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756729858; cv=none; b=Cieai2xYPuYmEGfpvo0BgzlGX2jMhW5XeZV44hkslB4+t20a/P22PMCspQlUNgMtX6BSyy+qr9NXaG0q/PitilNKOr///yhWVLYqa9FZL2kZH/ySgtywpQsU/d+8FEhkjaPApwIFQ56VfRZ7TT5QaAVePezEN8J/fl2K/8oUPaQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756729858; c=relaxed/simple; bh=31+JNbBxEbgRy394xiEY0SqE+foE7WaLBkkkvVJFhXI=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=g4Kt8+XYXWzmt9OH4GftJcu1uhnFiu7RVMeuJ36utyzN7NFZdIszWNcFALdI7JgszAxEHmVDYm5gLnBj9boyeYlcyoTkbKM/LNfkwWQDHhU5ktos9IvPX0c9XXGeWP+knU8qvw3cNzjdxv+W9j4ctkGWutACqBfUIeW/sjMymjg= 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=HTecopPj; arc=none smtp.client-ip=209.85.208.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="HTecopPj" Received: by mail-ed1-f53.google.com with SMTP id 4fb4d7f45d1cf-6188b6f501cso4788272a12.2 for ; Mon, 01 Sep 2025 05:30:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ionos.com; s=google; t=1756729854; x=1757334654; 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=719Ia0lSRQecbD5eusFA1tVcXf6dgvDvzBCqCYcJwqw=; b=HTecopPjrD6O6KseQfBkDG2HF0HXMdtaPLkAcOX6N17X/H8SSj08ozVOo6VICD8tJT SM3yElEPB5BaDOZKwCX+jKOCy5TdVAHnMj3KUcHdGTo2ZNvhB9ATKfj8aDhR0EzZ99mP 5mlPHdWYRm1qYMG7YJPxZbx9X1yrA+bX1C0QRpjpLmdxCVJreADV3BbviOU6BP+lXjMQ XxLV91GA7QwoNavmE6sCiGEtJk0l4X37hGtM0r5nfrphswI/4j2uii4DukJuc/jziMui xnwwbEtMXMTpDxQrKTKJSEpdNL8k32HKyDF1iSJNzuS9QvwU9pKVe14g1ANmpEgQsjC1 5ICQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756729854; x=1757334654; 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=719Ia0lSRQecbD5eusFA1tVcXf6dgvDvzBCqCYcJwqw=; b=HeQMRaL1hmfgQxby7FMlaqd/kIxByFf/dYDDAqvI1lMXk4ZIOFXQyWQQVmAkyyEltw +vUTwGKMwqrlR6SGeT1ZaQjWoLpuzeuB81imVpNOj4/u4srJ/4+ffQHDNN34ik4nHYpX JJWtWzqn/eT/ZoQsAmTvXl9Z9T3QJpZFxOvNyDgY29GN9bV7Zdj/XTo6McrK6yMRgvbs nw0YAJYOj5AnNbNlId9XO6sO7pmyCo6yuQwM2JDdvwsn74P5bbTWtmxanhuAKyIo7Ikf ewwWGu7KMTGsWfApA+pslNl9jE89xzrfg/EO8Iy0eYUtfjXqnZAckqu4RFogBfmboH1t vNqg== X-Forwarded-Encrypted: i=1; AJvYcCWw/+1E2JzXZhyraHoiptsVWzx4wLUXnQTbUvGswBidKFzxRttjRCArcEBueQw0Fhq1yumg8vlb+hvNkqs=@vger.kernel.org X-Gm-Message-State: AOJu0Yymw/DDlCMu1zl07hjzUGXBZJRadYsLnSs44oIKap1JCIEKR6i1 ZPGMe82aUNsMy5OMM8KcSS6S2Dvuip0BcSwC07kdJsepO+UO7AY7cCvHT3p5tZAOtmk= X-Gm-Gg: ASbGncsf1cfjVqKnZ3Z1TowPHoDnWGMzIEGHLLfDQ/DcFZw52xv9Vj4zXshCCUySR0J g+a68bXCXqHAgVbCMdUoZD+0DF+iTYpmSy/5Mc8IBMeHUhPIQa3PFww9T7LA52BDQNp5Vz1mc3n bbnT+4ASjTI0o1DuKeKR1YQpdccp/OfBJWwcEDVk4HsglbduYGWsx3WFFCUeKW4/ae0KhjyDwnW DzKXsqbnaQIQWBd/N2ZKb9TLbiCSB220QYkdfF6cXALdVzHAveCC9gY6QKlfL2f8r7t0qaGKucl JUZYtMIR8bBEN6kUn0QMTPX11mUK3Acmolc6GtYP1jznSbkaHLlH4mKDCXexDlBNOxKdH61aHVE DGcdoRg/ecKF1LwI2KgLClPqMEgNqTF5PkSnYKP49roHeALkZBlMLWR7pvquSSd7QI/eoCKF2IG neF5kSsSXHtzuNyyBFSa4UDC9gM2dJCrnfkK/9hv0i6Uo= X-Google-Smtp-Source: AGHT+IFXpOqRLV7jtUuVW63S0urvzzT2Ybqzsy1IuQBF5NxQ7SlgahydrdjD1p/lIEKi/iaMHlbMCA== X-Received: by 2002:a05:6402:3510:b0:61c:5cac:2961 with SMTP id 4fb4d7f45d1cf-61d2699455emr6335145a12.14.1756729854314; Mon, 01 Sep 2025 05:30:54 -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 4fb4d7f45d1cf-61eaf5883b6sm255566a12.20.2025.09.01.05.30.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 05:30:54 -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 v5 10/12] mm: constify various inline test functions for improved const-correctness Date: Mon, 1 Sep 2025 14:30:26 +0200 Message-ID: <20250901123028.3383461-11-max.kellermann@ionos.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250901123028.3383461-1-max.kellermann@ionos.com> References: <20250901123028.3383461-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 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) Reviewed-by: Christian Brauner --- include/linux/mm_inline.h | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/include/linux/mm_inline.h b/include/linux/mm_inline.h index 150302b4a905..8c4f6f95ba9f 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 *const 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 *co= nst folio) { 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 *const 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 *const lruvec, co= nst 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 *const l= ruvec, + const struct folio *const 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,8 @@ 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 *const new, + const struct folio *const old) { unsigned long refs =3D READ_ONCE(old->flags.f) & LRU_REFS_MASK; =20 @@ -330,7 +332,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 +510,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 *const mm) { /* * Must be called after having acquired the PTL; orders against that @@ -521,7 +523,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 *const mm) { /* * Similar to mm_tlb_flush_pending(), we must have acquired the PTL @@ -605,7 +607,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 *const vma) { if (vma->vm_flags & (VM_SEQ_READ | VM_RAND_READ)) return false; --=20 2.47.2 From nobody Sun Dec 14 06:22:04 2025 Received: from mail-ed1-f51.google.com (mail-ed1-f51.google.com [209.85.208.51]) (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 14F6734AB1B for ; Mon, 1 Sep 2025 12:30:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756729860; cv=none; b=ZdvYhxHoAMRVPMrUB3uq/9H9d5/7cWOctufqNMTfI8VM1rEG+Jjz42TH6rBkWvfzkvzzXGm7sIPSN8rMWuO91fAcpB8Il8cJMcSAn7QL5Ib8A9LUhKQyS1sSJCMwP93CSXsXLohKTub126jAGW6YA6obM4/DAoHmrQZF6c6x/Zs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756729860; c=relaxed/simple; bh=k1s6/3+1LZLo5UUwx6YnV4ZFL9KBD5D/EJISKBZ+akI=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WfLOGpl8UbS3gDgbS2RVx2Zv02TyS70p96SF5IWHouHzzh/6pA+gZgcSd1SIeWIkP075EE8HktmizPZW292cdbKki+hk8i/u4Y7ucTz7vhOKQ1lUU5MxwrrPecKp7o1yXiGuzEVFCxEWINPUG2TiQYpr9USL7vGO9qIDWjLe79k= 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=Mewagtta; arc=none smtp.client-ip=209.85.208.51 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="Mewagtta" Received: by mail-ed1-f51.google.com with SMTP id 4fb4d7f45d1cf-61e8fe26614so2178105a12.1 for ; Mon, 01 Sep 2025 05:30:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ionos.com; s=google; t=1756729856; x=1757334656; 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=W7iVmeI4QbKEqLSgMzs/KBDF5kQHVdSmVc3arqRn58E=; b=Mewagtta50Wt5d65PR3YI2NmvBlBexQYpZaVUZMTvrwIDFmbnna16Qo9bjaWVluq6/ nGfT2R53GcyS/AEBjpLMX07bL6brRVhurBYyukGqaQbMY9eX/EXb0+ZWo4ff8KW8+8nd qV7y1lt16HVcyXf3ulcnAhi7JSvGbQOlaCLK/B/kaLzOmCdsfMIfedd+vz7zVxlXH6Vw 2KsYvGkU4n3WRA6QnsiDS9CU0ZxEIXkqVNDBhZTN/CHB59Afm8QkPtHPBxxZnI4kFL0f 1fJM+NqkoAtbwkoG8xQhOYK48NP9kBAefLS9E7TgssvbYW9mAuSm/fxzrQqoQ2nys7We jHCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756729856; x=1757334656; 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=W7iVmeI4QbKEqLSgMzs/KBDF5kQHVdSmVc3arqRn58E=; b=DhCq/nLp805h6lo1c9Bv37OxkKCWIvCu27hNIX8Y0YznPl0RqemLkR8kXwQxUCsU1t Hyt3ptIiMKfg7gqZm436qamDBZVgk+yGR0U2gNBIaxdS11RHik94v1tqWoPRdEkDjJQt l+nU0V5ernfMw1yQ1OOvzrZpLue7U4UVOVj8nawBXFqOvP+PwsMfMxkuQQ6SK6Siyos9 Cq3CfZofRwYsa6EsyoKNHA0arLSL29IBebHn+ob5CALHvT15+5KEoOC/wAajfkCscWh2 yASvZHpwExdrP9VBlgHPJdB0UWvcZ17f2hTiZYMrG6fhBH0nMAaPfUqEDRrzGHbOaBqo wlkA== X-Forwarded-Encrypted: i=1; AJvYcCVohtL7nM0cSO0mx3JgU0Ng24aDXF7TuPmQ25mkD0Y5053txHHGmNpcrt+zj13NPqpHzGhQOQBT1/X0xew=@vger.kernel.org X-Gm-Message-State: AOJu0YzD24QHVgjDCwA+U4gPqJxZCQgkIjkGc3ARQZaR5GHPmrzk1Q/X Mk+YWoPq4Jd1gXUxY0LRFiZvixQTUFEHr7fYt71fiUEJImxT8puzBi/8kI4TtVY3HqM= X-Gm-Gg: ASbGnct56yqDepr0ksVQnQOMRlIPf2/E9trvNr7De+v+BCV560wWYYld3s5o3r0cZvP 46kXnG9OylFqjWmcLtmwx4/R9ThK8ijaQEo6PXiDFNkmNiPiPH1ZXBzqWB09h2ozR8fg1z5FQxI 6bGfuvPQlYv9vrAuoQiYcIAYrgq3fsZszIkJAraSsJSTggzvGAmPdXkZgi5CikwQym5TQ2MJ9x3 N1rAyoaeP1wL+RK+M46FGddz9m5Vl4KaNw/o1jH8O9cY9awUZaBRO0ldzl78O6o5yrAqxHK8OB0 0UwMxJf4jmbA+/CNoO9G4Dgx1+slAOBQ20SzSGqVRF7zjFQGmbjQRbnLFhYn0OSeg5xWHHtDuz5 DEy2te6NSuuV1uDaxNToLz2JsgUcMNxUKuF1milXNM/kCNSq4HBVxn5CS0AhzxegxvAUyNF9LBK X6/YwjsdjKgGYap+BH//4TE6hIddO4RQ53 X-Google-Smtp-Source: AGHT+IFoXjkT5AKVagAxNg7F2t10e+aOutMVefuJzQmttAG6qfcyBYcXqTaEs2cFD41mn40EFxW2tQ== X-Received: by 2002:a05:6402:354f:b0:61d:2d2b:76ad with SMTP id 4fb4d7f45d1cf-61d2d2b78fdmr6247075a12.14.1756729856194; Mon, 01 Sep 2025 05:30:56 -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 4fb4d7f45d1cf-61eaf5883b6sm255566a12.20.2025.09.01.05.30.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 05:30:55 -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 v5 11/12] mm: constify assert/test functions in mm.h Date: Mon, 1 Sep 2025 14:30:27 +0200 Message-ID: <20250901123028.3383461-12-max.kellermann@ionos.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250901123028.3383461-1-max.kellermann@ionos.com> References: <20250901123028.3383461-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 Reviewed-by: Christian Brauner --- 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..4cca66ba8839 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(struct vm_fault *const 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 *con= st 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 *const 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 *const vm= a) { 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 *con= st 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 *const 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 *cons= t 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 *const = 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 *const v= ma) { 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 *const 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 *co= nst vma, 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 *const 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 *const page) { return f= alse; } 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 Sun Dec 14 06:22:04 2025 Received: from mail-ed1-f51.google.com (mail-ed1-f51.google.com [209.85.208.51]) (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 4137634DCE2 for ; Mon, 1 Sep 2025 12:31:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756729862; cv=none; b=XRd6cFvsRV1DSaepAeeTA5Ysrir8NJ/QbLG3SbIViA6KlYJDhBgPIndSCOLQgiWROq1MnKaeNAMTlT+b/Bk6f6eIbhxYpk0U6IeodHjnSuM8+dVu8DGj9Pw8dgGv1Q2oWNi92WSVaVuyyJ75D7dCruZdyvqSviocykFfLZskiic= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756729862; c=relaxed/simple; bh=LvAENzmkEUNEOpyXvR50vI0BsrVpoXTDUBb1MGeImjM=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pNOjtqxzAGL5qs4Cf5cHuQllL86eRN3153FXvah2nl8qeqCgq46oKwp5Q/TLHsSosZ4oZTjLcHM0BG6VV+440Yx9EjkQkCOaxz88VXfDPm/sqTFsmdxMfxJXKrxDZwkuILbpnpsjjQGcr6eNQoDzs+1HiBdwQgfYIE8JAkd7bVg= 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=Xmq5iXXL; arc=none smtp.client-ip=209.85.208.51 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="Xmq5iXXL" Received: by mail-ed1-f51.google.com with SMTP id 4fb4d7f45d1cf-61cb9e039d9so8505413a12.1 for ; Mon, 01 Sep 2025 05:30:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ionos.com; s=google; t=1756729858; x=1757334658; 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=OBIjmGwuQfdaUaluJIvLRQBK4PGjY6jwjN1piFQcysw=; b=Xmq5iXXLcUKF64lRagu9t1I93kuzhbEzkPhTXeNoEcluUJ0mxME80/vHR66YABlyPj q9QR/yWDn1QytEoqSiGLRtnZHA0tFmhjUfjyrL2mtHai4EzU/KasOJDVRVGSCv6WOeKj NFmX9+9i7h1sv7ndbJKxaAFJp54tHm+BSjfqC+SiDgQ+cTEMNfUHOvR/OghR+d9cf21S apmBokfygkkMrbkLeA3qYj5m7Muiz7+QCc09T6iXsRpx3/mWJoWcY0M9Z36bIWMfJ5pK 2d8eofoMTzRCTO756KgpAtOdx2ai2DjdjSbBZAE/gYZQxnzwY/lbTIyzHAagNcg/9x/E jgJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756729858; x=1757334658; 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=OBIjmGwuQfdaUaluJIvLRQBK4PGjY6jwjN1piFQcysw=; b=w7YLdPMMvJSZS77qozutsfU6EGGhHG8m0Syl/nglbS9rdN/1F4Na2yQdIRDSiEt9w9 Gszep28TA1trou5+jExnTtzM4Il1MuISdAypp6+OgAgDEqlmNc+DOZacssAY3xWe86kc Bjf7fYGQd23oLfuVcov/EdYE97HAN063AokM0gCTg/07AorhTn4+mHhuLcVMMkDx8/97 AosVWhhJHdHciDAwvAY7JmIPky+CrtNmxxKdiSWOoZKK0hJ6Qz7djPfdfnWR5KdL5fQm VEowDBkidpLmpzqQeD9AiccFOa1RVkxXDAX8qzD/vhT7qe9iGLUu+S7HA/oc+ifN9WXp Kp8A== X-Forwarded-Encrypted: i=1; AJvYcCWw9qEszSSuHnXCioHtxAhlBVSe1SmpMSA1NyTbKbujlUfJ8W2TwIoqv14kRBR+VcCgAKp0BSfXmBGvKNc=@vger.kernel.org X-Gm-Message-State: AOJu0Yxr9GqjzHxLo0MXPewoUyFR4kkLCANRF9NWlsh1QGb141bEdak1 MxPttt6dU0OC/9DqjqVct2c7k1nKSipjvWEhhzNiYEAIJf3beYV3X7OA/xud0opj+xk= X-Gm-Gg: ASbGncvPFjcirL18G+CDkGWcuVC4n5eqyBetdNdwl/isYNlFRjQMfnDpLkhIEuHHzBO p4iQmseejP87BLReOqPnC+qhWFHb9Dlc9Gm5VU+On2YxvXVSwzDpmN+DEYyYV1kSgu0kGtN4w4i yqS3lJv5eqryEHDkGIDVIp0Ba2jBNvMZT7S35kP17duczBSnWkWWBwoN+GYkEUnkz6/RfvfmKf5 T76WUdMDGv1q+HuZxXJrJuHmfpROL5A2gYoS4pSJ9oj4f4YUdttvCT8ob/w0fj7CTTesr1Q4uvH GzSVz14PcfdcsjKCahCC1In2jx3KFI+3j0sjEpbxVWT7SPmBBFbb1SplLkpAePQu4RaDpPV19FB wA3zHIE22a+8PkiZfeAHpmcueXksEQ8DmLmUz7+OCeyy8Tmgp4gfWWYA4s5rljaZDY/d3pswCmQ nqTFSFVBLzJ3ca/tOjclK6cjKgMYm8pnoq X-Google-Smtp-Source: AGHT+IFiwGGkFlsym2WfGdbuIOc8JJYNdFhpv0BKkeSrtamBaCd4/FeUnocQUw4lZEglIaJHc8zMBQ== X-Received: by 2002:a05:6402:2742:b0:61c:7ba9:8a3 with SMTP id 4fb4d7f45d1cf-61d269974dfmr6695910a12.3.1756729858122; Mon, 01 Sep 2025 05:30:58 -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 4fb4d7f45d1cf-61eaf5883b6sm255566a12.20.2025.09.01.05.30.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 05:30:57 -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 v5 12/12] mm: constify highmem related functions for improved const-correctness Date: Mon, 1 Sep 2025 14:30:28 +0200 Message-ID: <20250901123028.3383461-13-max.kellermann@ionos.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250901123028.3383461-1-max.kellermann@ionos.com> References: <20250901123028.3383461-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 Reviewed-by: Christian Brauner --- arch/arm/include/asm/highmem.h | 6 ++--- arch/xtensa/include/asm/highmem.h | 2 +- include/linux/highmem-internal.h | 44 +++++++++++++++++-------------- include/linux/highmem.h | 8 +++--- mm/highmem.c | 10 +++---- 5 files changed, 37 insertions(+), 33 deletions(-) diff --git a/arch/arm/include/asm/highmem.h b/arch/arm/include/asm/highmem.h index b4b66220952d..023be74298f3 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 *const page) { return NULL; } diff --git a/arch/xtensa/include/asm/highmem.h b/arch/xtensa/include/asm/hi= ghmem.h index 34b8b620e7f1..473b622b863b 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 *const 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..442d0efea5c7 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,11 +33,11 @@ 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 -static inline void *kmap(struct page *page) +static inline void *kmap(struct page *const 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 *const 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 *const 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 *cons= t page) { if (!PageHighMem(page)) return page_address(page); @@ -81,13 +81,15 @@ 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 *const folio, + const size_t offset) { - 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 *const page, + const pgprot_t prot) { return __kmap_local_page_prot(page, prot); } @@ -102,7 +104,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 *const page, const = pgprot_t prot) { if (IS_ENABLED(CONFIG_PREEMPT_RT)) migrate_disable(); @@ -113,7 +115,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 *const page) { return kmap_atomic_prot(page, kmap_prot); } @@ -167,38 +169,40 @@ static inline struct page *kmap_to_page(void *addr) return virt_to_page(addr); } =20 -static inline void *kmap(struct page *page) +static inline void *kmap(struct page *const page) { might_sleep(); return page_address(page); } =20 -static inline void kunmap_high(struct page *page) { } +static inline void kunmap_high(const struct page *const page) { } static inline void kmap_flush_unused(void) { } =20 -static inline void kunmap(struct page *page) +static inline void kunmap(const struct page *const 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 *const 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 *cons= t 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 *const folio, + const size_t offset) { 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 *const page, + const pgprot_t prot) { return kmap_local_page(page); } @@ -215,7 +219,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 *const page) { if (IS_ENABLED(CONFIG_PREEMPT_RT)) migrate_disable(); @@ -225,7 +229,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 *const page, const = pgprot_t prot) { 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..93fa505fcb98 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 *const 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 *const 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 *const 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 *const 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 *const page, const pgprot_t= prot) { void *kmap; =20 --=20 2.47.2