Le 24/01/2026 à 10:56, Mike Rapoport a écrit :
From: "Mike Rapoport (Microsoft)" <[email protected]>

Reduce 22 declarations of empty_zero_page to 3 and 23 declarations of
ZERO_PAGE() to 4.

Every architecture defines empty_zero_page that way or another, but for the
most of them it is always a page aligned page in BSS and most definitions
of ZERO_PAGE do virt_to_page(empty_zero_page).

Move Linus vetted x86 definition of empty_zero_page and ZERO_PAGE() to the
core MM and drop these definitions in architectures that do not implement
colored zero page (MIPS and s390).

ZERO_PAGE() remains a macro because turning it to a wrapper for a static
inline causes severe pain in header dependencies.

For the most part the change is mechanical, with these being noteworthy:

* alpha: aliased empty_zero_page with ZERO_PGE that was also used for boot
   parameters. Switching to a generic empty_zero_page removes the aliasing
   and keeps ZERO_PGE for boot parameters only
* arm64: uses __pa_symbol() in ZERO_PAGE() so that definition of
   ZERO_PAGE() is kept intact.
* m68k/parisc/sparc64/um: allocated empty_zero_page from memblock,
   although they do not support zero page coloring and having it in BSS
   will work fine.
* sh: used empty_zero_page for boot parameters at the very early boot.
   Rename the parameters page to boot_params_page and let sh use the generic
   empty_zero_page.
* hexagon: had an amusing comment about empty_zero_page

        /* A handy thing to have if one has the RAM. Declared in head.S */

   that unfortunately had to go :)

Signed-off-by: Mike Rapoport (Microsoft) <[email protected]>
---
  arch/alpha/include/asm/pgtable.h          |  6 ------
  arch/arc/include/asm/pgtable.h            |  3 ---
  arch/arc/mm/init.c                        |  2 --
  arch/arm/include/asm/pgtable.h            |  9 ---------
  arch/arm/mm/mmu.c                         |  7 -------
  arch/arm/mm/nommu.c                       |  7 -------
  arch/arm64/include/asm/pgtable.h          |  1 -
  arch/arm64/mm/mmu.c                       |  7 -------
  arch/csky/include/asm/pgtable.h           |  3 ---
  arch/csky/mm/init.c                       |  3 ---
  arch/hexagon/include/asm/pgtable.h        |  6 ------
  arch/hexagon/kernel/head.S                |  5 -----
  arch/hexagon/kernel/hexagon_ksyms.c       |  1 -
  arch/loongarch/include/asm/pgtable.h      |  9 ---------
  arch/loongarch/mm/init.c                  |  3 ---
  arch/m68k/include/asm/pgtable_mm.h        |  9 ---------
  arch/m68k/include/asm/pgtable_no.h        |  7 -------
  arch/m68k/mm/init.c                       |  9 ---------
  arch/m68k/mm/mcfmmu.c                     |  2 --
  arch/m68k/mm/motorola.c                   |  6 ------
  arch/m68k/mm/sun3mmu.c                    |  2 --
  arch/microblaze/include/asm/pgtable.h     | 10 ----------
  arch/microblaze/kernel/head.S             |  4 ----
  arch/microblaze/kernel/microblaze_ksyms.c |  2 --
  arch/nios2/include/asm/pgtable.h          |  7 -------
  arch/nios2/kernel/head.S                  | 10 ----------
  arch/nios2/kernel/nios2_ksyms.c           |  1 -
  arch/openrisc/include/asm/pgtable.h       |  4 ----
  arch/openrisc/kernel/head.S               |  3 ---
  arch/openrisc/kernel/or32_ksyms.c         |  1 -
  arch/openrisc/mm/init.c                   |  3 ---
  arch/parisc/include/asm/pgtable.h         | 11 -----------
  arch/parisc/mm/init.c                     |  6 ------
  arch/powerpc/include/asm/pgtable.h        |  6 ------
  arch/powerpc/mm/mem.c                     |  3 ---

For powerpc:

Reviewed-by: Christophe Leroy (CS GROUP) <[email protected]>

  arch/riscv/include/asm/pgtable.h          |  7 -------
  arch/riscv/mm/init.c                      |  4 ----
  arch/sh/include/asm/pgtable.h             |  8 --------
  arch/sh/include/asm/setup.h               |  3 ++-
  arch/sh/kernel/head_32.S                  |  4 ++--
  arch/sh/kernel/sh_ksyms_32.c              |  1 -
  arch/sh/mm/init.c                         |  1 -
  arch/sparc/include/asm/pgtable_32.h       |  8 --------
  arch/sparc/include/asm/pgtable_64.h       |  3 ---
  arch/sparc/include/asm/setup.h            |  2 --
  arch/sparc/kernel/head_32.S               |  7 -------
  arch/sparc/mm/init_32.c                   |  4 ----
  arch/sparc/mm/init_64.c                   | 15 ---------------
  arch/um/include/asm/pgtable.h             |  9 ---------
  arch/um/include/shared/kern_util.h        |  1 -
  arch/um/kernel/mem.c                      | 16 ----------------
  arch/um/kernel/um_arch.c                  |  1 -
  arch/x86/include/asm/pgtable.h            |  8 --------
  arch/x86/kernel/head_32.S                 |  4 ----
  arch/x86/kernel/head_64.S                 |  7 -------
  arch/xtensa/include/asm/pgtable.h         |  4 ----
  arch/xtensa/kernel/head.S                 |  3 ---
  arch/xtensa/kernel/xtensa_ksyms.c         |  2 --
  include/linux/pgtable.h                   |  8 ++++++++
  mm/mm_init.c                              |  9 +++++++++
  60 files changed, 21 insertions(+), 296 deletions(-)


_______________________________________________
linux-snps-arc mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-snps-arc

Reply via email to