Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

mm, s390: constify mapping related test/getter functions

For improved const-correctness.

We select certain test functions which either invoke each other, functions
that are already const-ified, or no further functions.

It is therefore relatively trivial to const-ify them, which provides a
basis for further const-ification further up the call stack.

(Even though seemingly unrelated, this also constifies the pointer
parameter of mmap_is_legacy() in arch/s390/mm/mmap.c because a copy of the
function exists in mm/util.c.)

Link: https://lkml.kernel.org/r/20250901205021.3573313-7-max.kellermann@ionos.com
Signed-off-by: Max Kellermann <max.kellermann@ionos.com>
Reviewed-by: Vishal Moola (Oracle) <vishal.moola@gmail.com>
Reviewed-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Acked-by: David Hildenbrand <david@redhat.com>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
Acked-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
Acked-by: Shakeel Butt <shakeel.butt@linux.dev>
Cc: Alexander Gordeev <agordeev@linux.ibm.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Andreas Larsson <andreas@gaisler.com>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Axel Rasmussen <axelrasmussen@google.com>
Cc: Baolin Wang <baolin.wang@linux.alibaba.com>
Cc: Borislav Betkov <bp@alien8.de>
Cc: Christian Borntraeger <borntraeger@linux.ibm.com>
Cc: Christian Brauner <brauner@kernel.org>
Cc: Christian Zankel <chris@zankel.net>
Cc: David Rientjes <rientjes@google.com>
Cc: David S. Miller <davem@davemloft.net>
Cc: Gerald Schaefer <gerald.schaefer@linux.ibm.com>
Cc: Heiko Carstens <hca@linux.ibm.com>
Cc: Helge Deller <deller@gmx.de>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Hugh Dickins <hughd@google.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: James Bottomley <james.bottomley@HansenPartnership.com>
Cc: Jan Kara <jack@suse.cz>
Cc: Jocelyn Falempe <jfalempe@redhat.com>
Cc: Liam Howlett <liam.howlett@oracle.com>
Cc: Mark Brown <broonie@kernel.org>
Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
Cc: Max Filippov <jcmvbkbc@gmail.com>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Michal Hocko <mhocko@suse.com>
Cc: "Nysal Jan K.A" <nysal@linux.ibm.com>
Cc: Oscar Salvador <osalvador@suse.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Russel King <linux@armlinux.org.uk>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Sven Schnelle <svens@linux.ibm.com>
Cc: Thomas Gleinxer <tglx@linutronix.de>
Cc: Thomas Huth <thuth@redhat.com>
Cc: Vasily Gorbik <gor@linux.ibm.com>
Cc: Wei Xu <weixugc@google.com>
Cc: Yuanchu Xie <yuanchu@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>

authored by

Max Kellermann and committed by
Andrew Morton
0bf25cfc 4680092f

+10 -10
+1 -1
arch/s390/mm/mmap.c
··· 27 27 return STACK_RND_MASK << PAGE_SHIFT; 28 28 } 29 29 30 - static inline int mmap_is_legacy(struct rlimit *rlim_stack) 30 + static inline int mmap_is_legacy(const struct rlimit *rlim_stack) 31 31 { 32 32 if (current->personality & ADDR_COMPAT_LAYOUT) 33 33 return 1;
+3 -3
include/linux/mm.h
··· 1002 1002 static inline bool vma_is_anon_shmem(const struct vm_area_struct *vma) { return false; } 1003 1003 #endif 1004 1004 1005 - int vma_is_stack_for_current(struct vm_area_struct *vma); 1005 + int vma_is_stack_for_current(const struct vm_area_struct *vma); 1006 1006 1007 1007 /* flush_tlb_range() takes a vma, not a mm, and can care about flags */ 1008 1008 #define TLB_FLUSH_VMA(mm,flags) { .vm_mm = (mm), .vm_flags = (flags) } ··· 2617 2617 2618 2618 int account_locked_vm(struct mm_struct *mm, unsigned long pages, bool inc); 2619 2619 int __account_locked_vm(struct mm_struct *mm, unsigned long pages, bool inc, 2620 - struct task_struct *task, bool bypass_rlim); 2620 + const struct task_struct *task, bool bypass_rlim); 2621 2621 2622 2622 struct kvec; 2623 2623 struct page *get_dump_page(unsigned long addr, int *locked); ··· 3380 3380 avc; avc = anon_vma_interval_tree_iter_next(avc, start, last)) 3381 3381 3382 3382 /* mmap.c */ 3383 - extern int __vm_enough_memory(struct mm_struct *mm, long pages, int cap_sys_admin); 3383 + extern int __vm_enough_memory(const struct mm_struct *mm, long pages, int cap_sys_admin); 3384 3384 extern int insert_vm_struct(struct mm_struct *, struct vm_area_struct *); 3385 3385 extern void exit_mmap(struct mm_struct *); 3386 3386 bool mmap_read_lock_maybe_expand(struct mm_struct *mm, struct vm_area_struct *vma,
+1 -1
include/linux/pagemap.h
··· 545 545 #endif 546 546 } 547 547 548 - struct address_space *folio_mapping(struct folio *); 548 + struct address_space *folio_mapping(const struct folio *folio); 549 549 550 550 /** 551 551 * folio_flush_mapping - Find the file mapping this folio belongs to.
+5 -5
mm/util.c
··· 315 315 EXPORT_SYMBOL(memdup_user_nul); 316 316 317 317 /* Check if the vma is being used as a stack by this task */ 318 - int vma_is_stack_for_current(struct vm_area_struct *vma) 318 + int vma_is_stack_for_current(const struct vm_area_struct *vma) 319 319 { 320 320 struct task_struct * __maybe_unused t = current; 321 321 ··· 410 410 return rnd << PAGE_SHIFT; 411 411 } 412 412 413 - static int mmap_is_legacy(struct rlimit *rlim_stack) 413 + static int mmap_is_legacy(const struct rlimit *rlim_stack) 414 414 { 415 415 if (current->personality & ADDR_COMPAT_LAYOUT) 416 416 return 1; ··· 504 504 * * -ENOMEM if RLIMIT_MEMLOCK would be exceeded. 505 505 */ 506 506 int __account_locked_vm(struct mm_struct *mm, unsigned long pages, bool inc, 507 - struct task_struct *task, bool bypass_rlim) 507 + const struct task_struct *task, bool bypass_rlim) 508 508 { 509 509 unsigned long locked_vm, limit; 510 510 int ret = 0; ··· 688 688 * You can call this for folios which aren't in the swap cache or page 689 689 * cache and it will return NULL. 690 690 */ 691 - struct address_space *folio_mapping(struct folio *folio) 691 + struct address_space *folio_mapping(const struct folio *folio) 692 692 { 693 693 struct address_space *mapping; 694 694 ··· 926 926 * Note this is a helper function intended to be used by LSMs which 927 927 * wish to use this logic. 928 928 */ 929 - int __vm_enough_memory(struct mm_struct *mm, long pages, int cap_sys_admin) 929 + int __vm_enough_memory(const struct mm_struct *mm, long pages, int cap_sys_admin) 930 930 { 931 931 long allowed; 932 932 unsigned long bytes_failed;