[PATCH 0/8] mm: cleanup usage of <asm/pgalloc.h>

From: Mike Rapoport
Date: Sat Jun 27 2020 - 10:35:07 EST


From: Mike Rapoport <rppt@xxxxxxxxxxxxx>

Hi,

Most architectures have very similar versions of pXd_alloc_one() and
pXd_free_one() for intermediate levels of page table.
These patches add generic versions of these functions in
<asm-generic/pgalloc.h> and enable use of the generic functions where
appropriate.

In addition, functions declared and defined in <asm/pgalloc.h> headers
are used mostly by core mm and early mm initialization in arch and there is
no actual reason to have the <asm/pgalloc.h> included all over the place.
The first patch in this series removes unneeded includes of <asm/pgalloc.h>

In the end it didn't work out as neatly as I hoped and moving
pXd_alloc_track() definitions to <asm-generic/pgalloc.h> would require
unnecessary changes to arches that have custom page table allocations, so
I've decided to move lib/ioremap.c to mm/ and make pgalloc-track.h local to
mm/.

Joerg Roedel (1):
mm: move p?d_alloc_track to separate header file

Mike Rapoport (7):
mm: remove unneeded includes of <asm/pgalloc.h>
opeinrisc: switch to generic version of pte allocation
xtensa: switch to generic version of pte allocation
asm-generic: pgalloc: provide generic pmd_alloc_one() and pmd_free_one()
asm-generic: pgalloc: provide generic pud_alloc_one() and pud_free_one()
asm-generic: pgalloc: provide generic pgd_free()
mm: move lib/ioremap.c to mm/

arch/alpha/include/asm/pgalloc.h | 21 +----
arch/alpha/include/asm/tlbflush.h | 1 -
arch/alpha/kernel/core_irongate.c | 1 -
arch/alpha/kernel/core_marvel.c | 1 -
arch/alpha/kernel/core_titan.c | 1 -
arch/alpha/kernel/machvec_impl.h | 2 -
arch/alpha/kernel/smp.c | 1 -
arch/alpha/mm/numa.c | 1 -
arch/arc/mm/fault.c | 1 -
arch/arc/mm/init.c | 1 -
arch/arm/include/asm/pgalloc.h | 12 +--
arch/arm/include/asm/tlb.h | 1 -
arch/arm/kernel/machine_kexec.c | 1 -
arch/arm/kernel/smp.c | 1 -
arch/arm/kernel/suspend.c | 1 -
arch/arm/mach-omap2/omap-mpuss-lowpower.c | 1 -
arch/arm/mm/hugetlbpage.c | 1 -
arch/arm/mm/mmu.c | 1 +
arch/arm64/include/asm/pgalloc.h | 39 +---------
arch/arm64/kernel/smp.c | 1 -
arch/arm64/mm/hugetlbpage.c | 1 -
arch/arm64/mm/ioremap.c | 1 -
arch/arm64/mm/mmu.c | 1 +
arch/csky/include/asm/pgalloc.h | 7 +-
arch/csky/kernel/smp.c | 1 -
arch/hexagon/include/asm/pgalloc.h | 7 +-
arch/ia64/include/asm/pgalloc.h | 24 ------
arch/ia64/include/asm/tlb.h | 1 -
arch/ia64/kernel/process.c | 1 -
arch/ia64/kernel/smp.c | 1 -
arch/ia64/kernel/smpboot.c | 1 -
arch/ia64/mm/contig.c | 1 -
arch/ia64/mm/discontig.c | 1 -
arch/ia64/mm/hugetlbpage.c | 1 -
arch/ia64/mm/tlb.c | 1 -
arch/m68k/include/asm/mmu_context.h | 2 +-
arch/m68k/include/asm/sun3_pgalloc.h | 7 +-
arch/m68k/kernel/dma.c | 2 +-
arch/m68k/kernel/traps.c | 3 +-
arch/m68k/mm/cache.c | 2 +-
arch/m68k/mm/fault.c | 1 -
arch/m68k/mm/kmap.c | 2 +-
arch/m68k/mm/mcfmmu.c | 1 +
arch/m68k/mm/memory.c | 1 -
arch/m68k/sun3x/dvma.c | 2 +-
arch/microblaze/include/asm/pgalloc.h | 6 --
arch/microblaze/include/asm/tlbflush.h | 1 -
arch/microblaze/kernel/process.c | 1 -
arch/microblaze/kernel/signal.c | 1 -
arch/mips/include/asm/pgalloc.h | 19 +----
arch/mips/sgi-ip32/ip32-memory.c | 1 -
arch/nds32/mm/mm-nds32.c | 2 +
arch/nios2/include/asm/pgalloc.h | 7 +-
arch/openrisc/include/asm/pgalloc.h | 33 +-------
arch/openrisc/include/asm/tlbflush.h | 1 -
arch/openrisc/kernel/or32_ksyms.c | 1 -
arch/parisc/include/asm/mmu_context.h | 1 -
arch/parisc/include/asm/pgalloc.h | 12 +--
arch/parisc/kernel/cache.c | 1 -
arch/parisc/kernel/pci-dma.c | 1 -
arch/parisc/kernel/process.c | 1 -
arch/parisc/kernel/signal.c | 1 -
arch/parisc/kernel/smp.c | 1 -
arch/parisc/mm/hugetlbpage.c | 1 -
arch/parisc/mm/ioremap.c | 2 +-
arch/powerpc/include/asm/tlb.h | 1 -
arch/powerpc/mm/book3s64/hash_hugetlbpage.c | 1 -
arch/powerpc/mm/book3s64/hash_pgtable.c | 1 -
arch/powerpc/mm/book3s64/hash_tlb.c | 1 -
arch/powerpc/mm/book3s64/radix_hugetlbpage.c | 1 -
arch/powerpc/mm/init_32.c | 1 -
arch/powerpc/mm/kasan/8xx.c | 1 -
arch/powerpc/mm/kasan/book3s_32.c | 1 -
arch/powerpc/mm/mem.c | 1 -
arch/powerpc/mm/nohash/40x.c | 1 -
arch/powerpc/mm/nohash/8xx.c | 1 -
arch/powerpc/mm/nohash/fsl_booke.c | 1 -
arch/powerpc/mm/nohash/kaslr_booke.c | 1 -
arch/powerpc/mm/pgtable.c | 1 -
arch/powerpc/mm/pgtable_64.c | 1 -
arch/powerpc/mm/ptdump/hashpagetable.c | 2 +-
arch/powerpc/mm/ptdump/ptdump.c | 1 -
arch/powerpc/platforms/pseries/cmm.c | 1 -
arch/riscv/include/asm/pgalloc.h | 18 +----
arch/riscv/mm/fault.c | 1 -
arch/s390/include/asm/tlb.h | 1 -
arch/s390/include/asm/tlbflush.h | 1 -
arch/s390/kernel/machine_kexec.c | 1 -
arch/s390/kernel/ptrace.c | 1 -
arch/s390/kvm/diag.c | 1 -
arch/s390/kvm/priv.c | 1 -
arch/s390/kvm/pv.c | 1 -
arch/s390/mm/cmm.c | 1 -
arch/s390/mm/mmap.c | 1 -
arch/s390/mm/pgtable.c | 1 -
arch/sh/include/asm/pgalloc.h | 4 +
arch/sh/kernel/idle.c | 1 -
arch/sh/kernel/machine_kexec.c | 1 -
arch/sh/mm/cache-sh3.c | 1 -
arch/sh/mm/cache-sh7705.c | 1 -
arch/sh/mm/hugetlbpage.c | 1 -
arch/sh/mm/init.c | 1 +
arch/sh/mm/ioremap_fixed.c | 1 -
arch/sh/mm/tlb-sh3.c | 1 -
arch/sparc/include/asm/ide.h | 1 -
arch/sparc/include/asm/tlb_64.h | 1 -
arch/sparc/kernel/leon_smp.c | 1 -
arch/sparc/kernel/process_32.c | 1 -
arch/sparc/kernel/signal_32.c | 1 -
arch/sparc/kernel/smp_32.c | 1 -
arch/sparc/kernel/smp_64.c | 1 +
arch/sparc/kernel/sun4m_irq.c | 1 -
arch/sparc/mm/highmem.c | 1 -
arch/sparc/mm/io-unit.c | 1 -
arch/sparc/mm/iommu.c | 1 -
arch/sparc/mm/tlb.c | 1 -
arch/um/include/asm/pgalloc.h | 9 +--
arch/um/include/asm/pgtable-3level.h | 3 -
arch/um/kernel/mem.c | 17 -----
arch/x86/ia32/ia32_aout.c | 1 -
arch/x86/include/asm/mmu_context.h | 1 -
arch/x86/include/asm/pgalloc.h | 42 +---------
arch/x86/kernel/alternative.c | 1 +
arch/x86/kernel/apic/apic.c | 1 -
arch/x86/kernel/mpparse.c | 1 -
arch/x86/kernel/traps.c | 1 -
arch/x86/mm/fault.c | 1 -
arch/x86/mm/hugetlbpage.c | 1 -
arch/x86/mm/kaslr.c | 1 -
arch/x86/mm/pgtable_32.c | 1 -
arch/x86/mm/pti.c | 1 -
arch/x86/platform/uv/bios_uv.c | 1 +
arch/xtensa/include/asm/pgalloc.h | 40 ++++------
arch/xtensa/kernel/xtensa_ksyms.c | 1 -
arch/xtensa/mm/cache.c | 1 -
arch/xtensa/mm/fault.c | 1 -
drivers/block/xen-blkback/common.h | 1 -
drivers/iommu/ipmmu-vmsa.c | 1 -
drivers/xen/balloon.c | 1 -
drivers/xen/privcmd.c | 1 -
fs/binfmt_elf_fdpic.c | 1 -
include/asm-generic/pgalloc.h | 80 ++++++++++++++++++++
include/asm-generic/tlb.h | 1 -
include/linux/mm.h | 45 -----------
lib/Makefile | 1 -
mm/Makefile | 2 +-
mm/hugetlb.c | 1 +
{lib => mm}/ioremap.c | 2 +
mm/pgalloc-track.h | 51 +++++++++++++
mm/sparse.c | 1 -
mm/vmalloc.c | 1 +
151 files changed, 194 insertions(+), 451 deletions(-)
rename {lib => mm}/ioremap.c (99%)
create mode 100644 mm/pgalloc-track.h

--
2.26.2