provide generic page_to_phys and phys_to_page implementations v3

Christoph Hellwig
2024-10-23T05:36:48Z

page_to_phys is duplicated by all architectures, and from some strange
reason placed in <asm/io.h> where it doesn't fit at all.

phys_to_page is only provided by a few architectures despite having a lot
of open coded users.

Provide generic versions in <asm-generic/memory_model.h> to make these
helpers more easily usable.

Changes since v2:
- spelling fixes

Changes since v1:
- use slightly less nested macros
- port a debug check from the old powerpc version to the generic code

Diffstat:
arch/alpha/include/asm/io.h | 1 -
arch/arc/include/asm/io.h | 3 ---
arch/arm/include/asm/memory.h | 6 ------
arch/arm64/include/asm/memory.h | 6 ------
arch/csky/include/asm/page.h | 3 ---
arch/hexagon/include/asm/page.h | 6 ------
arch/loongarch/include/asm/page.h | 3 ---
arch/m68k/include/asm/virtconvert.h | 3 ---
arch/microblaze/include/asm/page.h | 1 -
arch/mips/include/asm/io.h | 5 -----
arch/nios2/include/asm/io.h | 3 ---
arch/openrisc/include/asm/page.h | 2 --
arch/parisc/include/asm/page.h | 1 -
arch/powerpc/include/asm/io.h | 12 ------------
arch/riscv/include/asm/page.h | 3 ---
arch/s390/include/asm/page.h | 2 --
arch/sh/include/asm/page.h | 1 -
arch/sparc/include/asm/page.h | 2 --
arch/um/include/asm/pgtable.h | 2 --
arch/x86/include/asm/io.h | 5 -----
arch/xtensa/include/asm/page.h | 1 -
include/asm-generic/memory_model.h | 13 +++++++++++++
22 files changed, 13 insertions(+), 71 deletions(-)