[PATCH v2 00/12] mm: add `const` to lots of pointer parameters

Max Kellermann posted 12 patches 1 month ago
There is a newer version of this series
arch/arm/include/asm/highmem.h      |  6 +--
arch/parisc/include/asm/processor.h |  2 +-
arch/parisc/kernel/sys_parisc.c     |  2 +-
arch/s390/mm/mmap.c                 |  7 ++--
arch/sparc/kernel/sys_sparc_64.c    |  5 ++-
arch/x86/mm/mmap.c                  |  7 ++--
arch/xtensa/include/asm/highmem.h   |  2 +-
include/linux/fs.h                  |  7 ++--
include/linux/highmem-internal.h    | 38 ++++++++++---------
include/linux/highmem.h             |  8 ++--
include/linux/mm.h                  | 48 +++++++++++------------
include/linux/mm_inline.h           | 26 +++++++------
include/linux/mm_types.h            |  4 +-
include/linux/mmzone.h              | 42 ++++++++++----------
include/linux/pagemap.h             | 59 +++++++++++++++--------------
include/linux/sched/mm.h            |  4 +-
include/linux/shmem_fs.h            |  4 +-
mm/highmem.c                        | 10 ++---
mm/oom_kill.c                       |  3 +-
mm/shmem.c                          |  6 +--
mm/util.c                           | 20 ++++++----
21 files changed, 163 insertions(+), 147 deletions(-)
[PATCH v2 00/12] mm: add `const` to lots of pointer parameters
Posted by Max Kellermann 1 month ago
For improved const-correctness.

This work was initially posted here:
 https://lore.kernel.org/lkml/20250827192233.447920-1-max.kellermann@ionos.com/

.. but got rejected by Lorenzo Stoakes:
 https://lore.kernel.org/lkml/d6bf808d-7d74-4e22-ac4b-a6d1f4892262@lucifer.local/

David Hildenbrand and Lorenzo Stoakes suggested splitting the patch
into smaller chunks.  My second attempt with one smaller patch was met
with agreement:

 https://lore.kernel.org/lkml/20250828130311.772993-1-max.kellermann@ionos.com/

Now this is the rest of the initial patch in small pieces, plus some
more.

Establishing const-correctness in this low-level part of the kernel
enables doing the same in higher-level parts, e.g. filesystems.

Signed-off-by: Max Kellermann <max.kellermann@ionos.com>
---
v1-> v2:
- made several parameter values const (i.e. the pointer address, not
  just the pointed-to memory), as suggested by Andrew Morton and
  Yuanchu Xie
- drop existing+obsolete "extern" keywords on lines modified by these
  patches (suggested by Vishal Moola)
- add missing parameter names on lines modified by these patches
  (suggested by Vishal Moola)
- more "const" pointers (e.g. the task_struct passed to
  process_shares_mm())
- add missing "const" to s390, fixing s390 build failure
- moved the mmap_is_legacy() change in arch/s390/mm/mmap.c from 08/12
  to 06/12 (suggested by Vishal Moola)

Max Kellermann (12):
  mm/shmem: add `const` to lots of pointer parameters
  include/pagemap.h: add `const` to lots of pointer parameters
  include/mmzone.h: add `const` to lots of pointer parameters
  include/fs.h: add `const` to several pointer parameters
  mm/oom_kill: add `const` to pointer parameter
  mm/util: add `const` to several pointer parameters
  parisc/sys_parisc.c: add `const` to mmap_upper_limit() parameter
  arch, mm/util: add const to arch_pick_mmap_layout() parameter
  include/mm_types.h: add `const` to several pointer parameters
  include/mm_inline.h: add `const` to lots of pointer parameters
  include/mm.h: add `const` to lots of pointer parameters
  mm/highmem: add `const` to lots of pointer parameters

 arch/arm/include/asm/highmem.h      |  6 +--
 arch/parisc/include/asm/processor.h |  2 +-
 arch/parisc/kernel/sys_parisc.c     |  2 +-
 arch/s390/mm/mmap.c                 |  7 ++--
 arch/sparc/kernel/sys_sparc_64.c    |  5 ++-
 arch/x86/mm/mmap.c                  |  7 ++--
 arch/xtensa/include/asm/highmem.h   |  2 +-
 include/linux/fs.h                  |  7 ++--
 include/linux/highmem-internal.h    | 38 ++++++++++---------
 include/linux/highmem.h             |  8 ++--
 include/linux/mm.h                  | 48 +++++++++++------------
 include/linux/mm_inline.h           | 26 +++++++------
 include/linux/mm_types.h            |  4 +-
 include/linux/mmzone.h              | 42 ++++++++++----------
 include/linux/pagemap.h             | 59 +++++++++++++++--------------
 include/linux/sched/mm.h            |  4 +-
 include/linux/shmem_fs.h            |  4 +-
 mm/highmem.c                        | 10 ++---
 mm/oom_kill.c                       |  3 +-
 mm/shmem.c                          |  6 +--
 mm/util.c                           | 20 ++++++----
 21 files changed, 163 insertions(+), 147 deletions(-)

-- 
2.47.2