diff mbox series

[v1,2/4] powerpc/mm: Move book3s64 specifics in subdirectory mm/book3s64

Message ID c4afde657ef9e4ad0266ae62e9907313c41c4a16.1553853405.git.christophe.leroy@c-s.fr (mailing list archive)
State Accepted
Commit 47d99948eee48a84a4b242c17915a4ff59a29b5d
Headers show
Series powerpc: Split arch/powerpc/mm/ directory | expand

Checks

Context Check Description
snowpatch_ozlabs/apply_patch success Successfully applied on branch next (9e98c678c2d6ae3a17cb2de55d17f69dddaa231b)
snowpatch_ozlabs/checkpatch success total: 0 errors, 0 warnings, 0 checks, 89 lines checked

Commit Message

Christophe Leroy March 29, 2019, 10 a.m. UTC
Many files in arch/powerpc/mm are only for book3S64. This patch
creates a subdirectory for them.

Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
---
 arch/powerpc/mm/Makefile                           | 25 +++----------------
 arch/powerpc/mm/book3s64/Makefile                  | 28 ++++++++++++++++++++++
 arch/powerpc/mm/{ => book3s64}/hash64_4k.c         |  0
 arch/powerpc/mm/{ => book3s64}/hash64_64k.c        |  0
 arch/powerpc/mm/{ => book3s64}/hash_native_64.c    |  0
 arch/powerpc/mm/{ => book3s64}/hash_utils_64.c     |  0
 arch/powerpc/mm/{ => book3s64}/hugepage-hash64.c   |  0
 .../powerpc/mm/{ => book3s64}/hugetlbpage-hash64.c |  0
 arch/powerpc/mm/{ => book3s64}/hugetlbpage-radix.c |  0
 .../mm/{ => book3s64}/mmu_context_book3s64.c       |  0
 arch/powerpc/mm/{ => book3s64}/mmu_context_iommu.c |  0
 arch/powerpc/mm/{ => book3s64}/pgtable-book3s64.c  |  0
 arch/powerpc/mm/{ => book3s64}/pgtable-hash64.c    |  0
 arch/powerpc/mm/{ => book3s64}/pgtable-radix.c     |  0
 arch/powerpc/mm/{ => book3s64}/pkeys.c             |  0
 arch/powerpc/mm/{ => book3s64}/slb.c               |  0
 arch/powerpc/mm/{ => book3s64}/subpage-prot.c      |  0
 arch/powerpc/mm/{ => book3s64}/tlb-radix.c         |  0
 arch/powerpc/mm/{ => book3s64}/tlb_hash64.c        |  0
 arch/powerpc/mm/{ => book3s64}/vphn.c              |  0
 arch/powerpc/mm/{ => book3s64}/vphn.h              |  0
 arch/powerpc/mm/numa.c                             |  2 +-
 22 files changed, 32 insertions(+), 23 deletions(-)
 create mode 100644 arch/powerpc/mm/book3s64/Makefile
 rename arch/powerpc/mm/{ => book3s64}/hash64_4k.c (100%)
 rename arch/powerpc/mm/{ => book3s64}/hash64_64k.c (100%)
 rename arch/powerpc/mm/{ => book3s64}/hash_native_64.c (100%)
 rename arch/powerpc/mm/{ => book3s64}/hash_utils_64.c (100%)
 rename arch/powerpc/mm/{ => book3s64}/hugepage-hash64.c (100%)
 rename arch/powerpc/mm/{ => book3s64}/hugetlbpage-hash64.c (100%)
 rename arch/powerpc/mm/{ => book3s64}/hugetlbpage-radix.c (100%)
 rename arch/powerpc/mm/{ => book3s64}/mmu_context_book3s64.c (100%)
 rename arch/powerpc/mm/{ => book3s64}/mmu_context_iommu.c (100%)
 rename arch/powerpc/mm/{ => book3s64}/pgtable-book3s64.c (100%)
 rename arch/powerpc/mm/{ => book3s64}/pgtable-hash64.c (100%)
 rename arch/powerpc/mm/{ => book3s64}/pgtable-radix.c (100%)
 rename arch/powerpc/mm/{ => book3s64}/pkeys.c (100%)
 rename arch/powerpc/mm/{ => book3s64}/slb.c (100%)
 rename arch/powerpc/mm/{ => book3s64}/subpage-prot.c (100%)
 rename arch/powerpc/mm/{ => book3s64}/tlb-radix.c (100%)
 rename arch/powerpc/mm/{ => book3s64}/tlb_hash64.c (100%)
 rename arch/powerpc/mm/{ => book3s64}/vphn.c (100%)
 rename arch/powerpc/mm/{ => book3s64}/vphn.h (100%)

Comments

Michael Ellerman May 2, 2019, 7:11 a.m. UTC | #1
Christophe Leroy <christophe.leroy@c-s.fr> writes:

> Many files in arch/powerpc/mm are only for book3S64. This patch
> creates a subdirectory for them.
>
> Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
> ---
>  arch/powerpc/mm/Makefile                           | 25 +++----------------
>  arch/powerpc/mm/book3s64/Makefile                  | 28 ++++++++++++++++++++++
>  arch/powerpc/mm/{ => book3s64}/hash64_4k.c         |  0
>  arch/powerpc/mm/{ => book3s64}/hash64_64k.c        |  0
>  arch/powerpc/mm/{ => book3s64}/hash_native_64.c    |  0
>  arch/powerpc/mm/{ => book3s64}/hash_utils_64.c     |  0
>  arch/powerpc/mm/{ => book3s64}/hugepage-hash64.c   |  0
>  .../powerpc/mm/{ => book3s64}/hugetlbpage-hash64.c |  0
>  arch/powerpc/mm/{ => book3s64}/hugetlbpage-radix.c |  0
>  .../mm/{ => book3s64}/mmu_context_book3s64.c       |  0
>  arch/powerpc/mm/{ => book3s64}/mmu_context_iommu.c |  0
>  arch/powerpc/mm/{ => book3s64}/pgtable-book3s64.c  |  0
>  arch/powerpc/mm/{ => book3s64}/pgtable-hash64.c    |  0
>  arch/powerpc/mm/{ => book3s64}/pgtable-radix.c     |  0
>  arch/powerpc/mm/{ => book3s64}/pkeys.c             |  0
>  arch/powerpc/mm/{ => book3s64}/slb.c               |  0
>  arch/powerpc/mm/{ => book3s64}/subpage-prot.c      |  0
>  arch/powerpc/mm/{ => book3s64}/tlb-radix.c         |  0
>  arch/powerpc/mm/{ => book3s64}/tlb_hash64.c        |  0
>  arch/powerpc/mm/{ => book3s64}/vphn.c              |  0
>  arch/powerpc/mm/{ => book3s64}/vphn.h              |  0
>  arch/powerpc/mm/numa.c                             |  2 +-
>  22 files changed, 32 insertions(+), 23 deletions(-)
>  create mode 100644 arch/powerpc/mm/book3s64/Makefile
>  rename arch/powerpc/mm/{ => book3s64}/hash64_4k.c (100%)
>  rename arch/powerpc/mm/{ => book3s64}/hash64_64k.c (100%)
>  rename arch/powerpc/mm/{ => book3s64}/hash_native_64.c (100%)
>  rename arch/powerpc/mm/{ => book3s64}/hash_utils_64.c (100%)
>  rename arch/powerpc/mm/{ => book3s64}/hugepage-hash64.c (100%)
>  rename arch/powerpc/mm/{ => book3s64}/hugetlbpage-hash64.c (100%)
>  rename arch/powerpc/mm/{ => book3s64}/hugetlbpage-radix.c (100%)
>  rename arch/powerpc/mm/{ => book3s64}/mmu_context_book3s64.c (100%)
>  rename arch/powerpc/mm/{ => book3s64}/mmu_context_iommu.c (100%)
>  rename arch/powerpc/mm/{ => book3s64}/pgtable-book3s64.c (100%)
>  rename arch/powerpc/mm/{ => book3s64}/pgtable-hash64.c (100%)
>  rename arch/powerpc/mm/{ => book3s64}/pgtable-radix.c (100%)
>  rename arch/powerpc/mm/{ => book3s64}/pkeys.c (100%)
>  rename arch/powerpc/mm/{ => book3s64}/slb.c (100%)
>  rename arch/powerpc/mm/{ => book3s64}/subpage-prot.c (100%)
>  rename arch/powerpc/mm/{ => book3s64}/tlb-radix.c (100%)
>  rename arch/powerpc/mm/{ => book3s64}/tlb_hash64.c (100%)

Do you mind if I take this but rework the destination names in the process?

I don't like having eg. book3s64/pgtable-book3s64.c

And some of the other names could use a bit of cleanup too.

What about:

 arch/powerpc/mm/{hash64_4k.c => book3s64/hash_4k.c}
 arch/powerpc/mm/{hash64_64k.c => book3s64/hash_64k.c}
 arch/powerpc/mm/{hugepage-hash64.c => book3s64/hash_hugepage.c}
 arch/powerpc/mm/{hugetlbpage-hash64.c => book3s64/hash_hugetlbpage.c}
 arch/powerpc/mm/{hash_native_64.c => book3s64/hash_native.c}
 arch/powerpc/mm/{pgtable-hash64.c => book3s64/hash_pgtable.c}
 arch/powerpc/mm/{tlb_hash64.c => book3s64/hash_tlb.c}
 arch/powerpc/mm/{hash_utils_64.c => book3s64/hash_utils.c}
 arch/powerpc/mm/{mmu_context_iommu.c => book3s64/iommu_api.c}
 arch/powerpc/mm/{mmu_context_book3s64.c => book3s64/mmu_context.c}
 arch/powerpc/mm/{pgtable-book3s64.c => book3s64/pgtable.c}
 arch/powerpc/mm/{hugetlbpage-radix.c => book3s64/radix_hugetlbpage.c}
 arch/powerpc/mm/{pgtable-radix.c => book3s64/radix_pgtable.c}
 arch/powerpc/mm/{tlb-radix.c => book3s64/radix_tlb.c}

cheers
Christophe Leroy May 2, 2019, 7:15 a.m. UTC | #2
Le 02/05/2019 à 09:11, Michael Ellerman a écrit :
> Christophe Leroy <christophe.leroy@c-s.fr> writes:
> 
>> Many files in arch/powerpc/mm are only for book3S64. This patch
>> creates a subdirectory for them.
>>
>> Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
>> ---
>>   arch/powerpc/mm/Makefile                           | 25 +++----------------
>>   arch/powerpc/mm/book3s64/Makefile                  | 28 ++++++++++++++++++++++
>>   arch/powerpc/mm/{ => book3s64}/hash64_4k.c         |  0
>>   arch/powerpc/mm/{ => book3s64}/hash64_64k.c        |  0
>>   arch/powerpc/mm/{ => book3s64}/hash_native_64.c    |  0
>>   arch/powerpc/mm/{ => book3s64}/hash_utils_64.c     |  0
>>   arch/powerpc/mm/{ => book3s64}/hugepage-hash64.c   |  0
>>   .../powerpc/mm/{ => book3s64}/hugetlbpage-hash64.c |  0
>>   arch/powerpc/mm/{ => book3s64}/hugetlbpage-radix.c |  0
>>   .../mm/{ => book3s64}/mmu_context_book3s64.c       |  0
>>   arch/powerpc/mm/{ => book3s64}/mmu_context_iommu.c |  0
>>   arch/powerpc/mm/{ => book3s64}/pgtable-book3s64.c  |  0
>>   arch/powerpc/mm/{ => book3s64}/pgtable-hash64.c    |  0
>>   arch/powerpc/mm/{ => book3s64}/pgtable-radix.c     |  0
>>   arch/powerpc/mm/{ => book3s64}/pkeys.c             |  0
>>   arch/powerpc/mm/{ => book3s64}/slb.c               |  0
>>   arch/powerpc/mm/{ => book3s64}/subpage-prot.c      |  0
>>   arch/powerpc/mm/{ => book3s64}/tlb-radix.c         |  0
>>   arch/powerpc/mm/{ => book3s64}/tlb_hash64.c        |  0
>>   arch/powerpc/mm/{ => book3s64}/vphn.c              |  0
>>   arch/powerpc/mm/{ => book3s64}/vphn.h              |  0
>>   arch/powerpc/mm/numa.c                             |  2 +-
>>   22 files changed, 32 insertions(+), 23 deletions(-)
>>   create mode 100644 arch/powerpc/mm/book3s64/Makefile
>>   rename arch/powerpc/mm/{ => book3s64}/hash64_4k.c (100%)
>>   rename arch/powerpc/mm/{ => book3s64}/hash64_64k.c (100%)
>>   rename arch/powerpc/mm/{ => book3s64}/hash_native_64.c (100%)
>>   rename arch/powerpc/mm/{ => book3s64}/hash_utils_64.c (100%)
>>   rename arch/powerpc/mm/{ => book3s64}/hugepage-hash64.c (100%)
>>   rename arch/powerpc/mm/{ => book3s64}/hugetlbpage-hash64.c (100%)
>>   rename arch/powerpc/mm/{ => book3s64}/hugetlbpage-radix.c (100%)
>>   rename arch/powerpc/mm/{ => book3s64}/mmu_context_book3s64.c (100%)
>>   rename arch/powerpc/mm/{ => book3s64}/mmu_context_iommu.c (100%)
>>   rename arch/powerpc/mm/{ => book3s64}/pgtable-book3s64.c (100%)
>>   rename arch/powerpc/mm/{ => book3s64}/pgtable-hash64.c (100%)
>>   rename arch/powerpc/mm/{ => book3s64}/pgtable-radix.c (100%)
>>   rename arch/powerpc/mm/{ => book3s64}/pkeys.c (100%)
>>   rename arch/powerpc/mm/{ => book3s64}/slb.c (100%)
>>   rename arch/powerpc/mm/{ => book3s64}/subpage-prot.c (100%)
>>   rename arch/powerpc/mm/{ => book3s64}/tlb-radix.c (100%)
>>   rename arch/powerpc/mm/{ => book3s64}/tlb_hash64.c (100%)
> 
> Do you mind if I take this but rework the destination names in the process?

I don't mind, I think it's a good idea.

> 
> I don't like having eg. book3s64/pgtable-book3s64.c
> 
> And some of the other names could use a bit of cleanup too.
> 
> What about:
> 
>   arch/powerpc/mm/{hash64_4k.c => book3s64/hash_4k.c}
>   arch/powerpc/mm/{hash64_64k.c => book3s64/hash_64k.c}
>   arch/powerpc/mm/{hugepage-hash64.c => book3s64/hash_hugepage.c}
>   arch/powerpc/mm/{hugetlbpage-hash64.c => book3s64/hash_hugetlbpage.c}
>   arch/powerpc/mm/{hash_native_64.c => book3s64/hash_native.c}
>   arch/powerpc/mm/{pgtable-hash64.c => book3s64/hash_pgtable.c}
>   arch/powerpc/mm/{tlb_hash64.c => book3s64/hash_tlb.c}
>   arch/powerpc/mm/{hash_utils_64.c => book3s64/hash_utils.c}
>   arch/powerpc/mm/{mmu_context_iommu.c => book3s64/iommu_api.c}
>   arch/powerpc/mm/{mmu_context_book3s64.c => book3s64/mmu_context.c}
>   arch/powerpc/mm/{pgtable-book3s64.c => book3s64/pgtable.c}
>   arch/powerpc/mm/{hugetlbpage-radix.c => book3s64/radix_hugetlbpage.c}
>   arch/powerpc/mm/{pgtable-radix.c => book3s64/radix_pgtable.c}
>   arch/powerpc/mm/{tlb-radix.c => book3s64/radix_tlb.c}

Looks good

Christophe
Michael Ellerman May 2, 2019, 11:14 a.m. UTC | #3
Christophe Leroy <christophe.leroy@c-s.fr> writes:
> Le 02/05/2019 à 09:11, Michael Ellerman a écrit :
>> Christophe Leroy <christophe.leroy@c-s.fr> writes:
>> 
>>> Many files in arch/powerpc/mm are only for book3S64. This patch
>>> creates a subdirectory for them.
>>>
>>> Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
>>> ---
>>>   arch/powerpc/mm/Makefile                           | 25 +++----------------
>>>   arch/powerpc/mm/book3s64/Makefile                  | 28 ++++++++++++++++++++++
>>>   arch/powerpc/mm/{ => book3s64}/hash64_4k.c         |  0
>>>   arch/powerpc/mm/{ => book3s64}/hash64_64k.c        |  0
>>>   arch/powerpc/mm/{ => book3s64}/hash_native_64.c    |  0
>>>   arch/powerpc/mm/{ => book3s64}/hash_utils_64.c     |  0
>>>   arch/powerpc/mm/{ => book3s64}/hugepage-hash64.c   |  0
>>>   .../powerpc/mm/{ => book3s64}/hugetlbpage-hash64.c |  0
>>>   arch/powerpc/mm/{ => book3s64}/hugetlbpage-radix.c |  0
>>>   .../mm/{ => book3s64}/mmu_context_book3s64.c       |  0
>>>   arch/powerpc/mm/{ => book3s64}/mmu_context_iommu.c |  0
>>>   arch/powerpc/mm/{ => book3s64}/pgtable-book3s64.c  |  0
>>>   arch/powerpc/mm/{ => book3s64}/pgtable-hash64.c    |  0
>>>   arch/powerpc/mm/{ => book3s64}/pgtable-radix.c     |  0
>>>   arch/powerpc/mm/{ => book3s64}/pkeys.c             |  0
>>>   arch/powerpc/mm/{ => book3s64}/slb.c               |  0
>>>   arch/powerpc/mm/{ => book3s64}/subpage-prot.c      |  0
>>>   arch/powerpc/mm/{ => book3s64}/tlb-radix.c         |  0
>>>   arch/powerpc/mm/{ => book3s64}/tlb_hash64.c        |  0
>>>   arch/powerpc/mm/{ => book3s64}/vphn.c              |  0
>>>   arch/powerpc/mm/{ => book3s64}/vphn.h              |  0
>>>   arch/powerpc/mm/numa.c                             |  2 +-
>>>   22 files changed, 32 insertions(+), 23 deletions(-)
>>>   create mode 100644 arch/powerpc/mm/book3s64/Makefile
>>>   rename arch/powerpc/mm/{ => book3s64}/hash64_4k.c (100%)
>>>   rename arch/powerpc/mm/{ => book3s64}/hash64_64k.c (100%)
>>>   rename arch/powerpc/mm/{ => book3s64}/hash_native_64.c (100%)
>>>   rename arch/powerpc/mm/{ => book3s64}/hash_utils_64.c (100%)
>>>   rename arch/powerpc/mm/{ => book3s64}/hugepage-hash64.c (100%)
>>>   rename arch/powerpc/mm/{ => book3s64}/hugetlbpage-hash64.c (100%)
>>>   rename arch/powerpc/mm/{ => book3s64}/hugetlbpage-radix.c (100%)
>>>   rename arch/powerpc/mm/{ => book3s64}/mmu_context_book3s64.c (100%)
>>>   rename arch/powerpc/mm/{ => book3s64}/mmu_context_iommu.c (100%)
>>>   rename arch/powerpc/mm/{ => book3s64}/pgtable-book3s64.c (100%)
>>>   rename arch/powerpc/mm/{ => book3s64}/pgtable-hash64.c (100%)
>>>   rename arch/powerpc/mm/{ => book3s64}/pgtable-radix.c (100%)
>>>   rename arch/powerpc/mm/{ => book3s64}/pkeys.c (100%)
>>>   rename arch/powerpc/mm/{ => book3s64}/slb.c (100%)
>>>   rename arch/powerpc/mm/{ => book3s64}/subpage-prot.c (100%)
>>>   rename arch/powerpc/mm/{ => book3s64}/tlb-radix.c (100%)
>>>   rename arch/powerpc/mm/{ => book3s64}/tlb_hash64.c (100%)
>> 
>> Do you mind if I take this but rework the destination names in the process?
>
> I don't mind, I think it's a good idea.
>
>> 
>> I don't like having eg. book3s64/pgtable-book3s64.c
>> 
>> And some of the other names could use a bit of cleanup too.
>> 
>> What about:
>> 
>>   arch/powerpc/mm/{hash64_4k.c => book3s64/hash_4k.c}
>>   arch/powerpc/mm/{hash64_64k.c => book3s64/hash_64k.c}
>>   arch/powerpc/mm/{hugepage-hash64.c => book3s64/hash_hugepage.c}
>>   arch/powerpc/mm/{hugetlbpage-hash64.c => book3s64/hash_hugetlbpage.c}
>>   arch/powerpc/mm/{hash_native_64.c => book3s64/hash_native.c}
>>   arch/powerpc/mm/{pgtable-hash64.c => book3s64/hash_pgtable.c}
>>   arch/powerpc/mm/{tlb_hash64.c => book3s64/hash_tlb.c}
>>   arch/powerpc/mm/{hash_utils_64.c => book3s64/hash_utils.c}
>>   arch/powerpc/mm/{mmu_context_iommu.c => book3s64/iommu_api.c}
>>   arch/powerpc/mm/{mmu_context_book3s64.c => book3s64/mmu_context.c}
>>   arch/powerpc/mm/{pgtable-book3s64.c => book3s64/pgtable.c}
>>   arch/powerpc/mm/{hugetlbpage-radix.c => book3s64/radix_hugetlbpage.c}
>>   arch/powerpc/mm/{pgtable-radix.c => book3s64/radix_pgtable.c}
>>   arch/powerpc/mm/{tlb-radix.c => book3s64/radix_tlb.c}
>
> Looks good

Thanks. I'll do something similar for 32-bit & nohash.

cheers
diff mbox series

Patch

diff --git a/arch/powerpc/mm/Makefile b/arch/powerpc/mm/Makefile
index 3c1bd9fa23cd..a137fdf775e2 100644
--- a/arch/powerpc/mm/Makefile
+++ b/arch/powerpc/mm/Makefile
@@ -5,53 +5,34 @@ 
 
 ccflags-$(CONFIG_PPC64)	:= $(NO_MINIMAL_TOC)
 
-CFLAGS_REMOVE_slb.o = $(CC_FLAGS_FTRACE)
-
 obj-y				:= fault.o mem.o pgtable.o mmap.o \
 				   init_$(BITS).o pgtable_$(BITS).o \
 				   init-common.o mmu_context.o drmem.o
 obj-$(CONFIG_PPC_MMU_NOHASH)	+= mmu_context_nohash.o tlb_nohash.o \
 				   tlb_nohash_low.o
 obj-$(CONFIG_PPC_BOOK3E)	+= tlb_low_$(BITS)e.o
-hash64-$(CONFIG_PPC_NATIVE)	:= hash_native_64.o
 obj-$(CONFIG_PPC_BOOK3E_64)   += pgtable-book3e.o
-obj-$(CONFIG_PPC_BOOK3S_64)	+= pgtable-hash64.o hash_utils_64.o slb.o \
-				   $(hash64-y) mmu_context_book3s64.o \
-				   pgtable-book3s64.o pgtable-frag.o
+obj-$(CONFIG_PPC_BOOK3S_64)	+= book3s64/
+obj-$(CONFIG_PPC_BOOK3S_64)	+= pgtable-frag.o
 obj-$(CONFIG_PPC32)		+= pgtable-frag.o
-obj-$(CONFIG_PPC_RADIX_MMU)	+= pgtable-radix.o tlb-radix.o
 obj-$(CONFIG_PPC_BOOK3S_32)	+= ppc_mmu_32.o hash_low_32.o mmu_context_hash32.o
-obj-$(CONFIG_PPC_BOOK3S)	+= tlb_hash$(BITS).o
-ifdef CONFIG_PPC_BOOK3S_64
-obj-$(CONFIG_PPC_4K_PAGES)	+= hash64_4k.o
-obj-$(CONFIG_PPC_64K_PAGES)	+= hash64_64k.o
-endif
+obj-$(CONFIG_PPC_BOOK3S_32)	+= tlb_hash32.o
 obj-$(CONFIG_40x)		+= 40x_mmu.o
 obj-$(CONFIG_44x)		+= 44x_mmu.o
 obj-$(CONFIG_PPC_8xx)		+= 8xx_mmu.o
 obj-$(CONFIG_PPC_FSL_BOOK3E)	+= fsl_booke_mmu.o
 obj-$(CONFIG_NEED_MULTIPLE_NODES) += numa.o
-obj-$(CONFIG_PPC_SPLPAR)	+= vphn.o
 obj-$(CONFIG_PPC_MM_SLICES)	+= slice.o
 obj-y				+= hugetlbpage.o
 ifdef CONFIG_HUGETLB_PAGE
-obj-$(CONFIG_PPC_BOOK3S_64)	+= hugetlbpage-hash64.o
-obj-$(CONFIG_PPC_RADIX_MMU)	+= hugetlbpage-radix.o
 obj-$(CONFIG_PPC_BOOK3E_MMU)	+= hugetlbpage-book3e.o
 endif
-obj-$(CONFIG_TRANSPARENT_HUGEPAGE) += hugepage-hash64.o
-obj-$(CONFIG_PPC_SUBPAGE_PROT)	+= subpage-prot.o
 obj-$(CONFIG_NOT_COHERENT_CACHE) += dma-noncoherent.o
 obj-$(CONFIG_HIGHMEM)		+= highmem.o
 obj-$(CONFIG_PPC_COPRO_BASE)	+= copro_fault.o
-obj-$(CONFIG_SPAPR_TCE_IOMMU)	+= mmu_context_iommu.o
 obj-$(CONFIG_PPC_PTDUMP)	+= ptdump/
-obj-$(CONFIG_PPC_MEM_KEYS)	+= pkeys.o
 
 # Disable kcov instrumentation on sensitive code
 # This is necessary for booting with kcov enabled on book3e machines
 KCOV_INSTRUMENT_tlb_nohash.o := n
 KCOV_INSTRUMENT_fsl_booke_mmu.o := n
-
-# Instrumenting the SLB fault path can lead to duplicate SLB entries
-KCOV_INSTRUMENT_slb.o := n
diff --git a/arch/powerpc/mm/book3s64/Makefile b/arch/powerpc/mm/book3s64/Makefile
new file mode 100644
index 000000000000..cfea527b66d9
--- /dev/null
+++ b/arch/powerpc/mm/book3s64/Makefile
@@ -0,0 +1,28 @@ 
+# SPDX-License-Identifier: GPL-2.0
+#
+# Makefile for the linux ppc-specific parts of the memory manager.
+#
+
+ccflags-y	:= $(NO_MINIMAL_TOC)
+
+CFLAGS_REMOVE_slb.o = $(CC_FLAGS_FTRACE)
+
+obj-y				+= pgtable-hash64.o hash_utils_64.o slb.o \
+				   mmu_context_book3s64.o pgtable-book3s64.o \
+				   tlb_hash64.o
+obj-$(CONFIG_PPC_NATIVE)	+= hash_native_64.o
+obj-$(CONFIG_PPC_RADIX_MMU)	+= pgtable-radix.o tlb-radix.o
+obj-$(CONFIG_PPC_4K_PAGES)	+= hash64_4k.o
+obj-$(CONFIG_PPC_64K_PAGES)	+= hash64_64k.o
+obj-$(CONFIG_PPC_SPLPAR)	+= vphn.o
+obj-$(CONFIG_HUGETLB_PAGE)	+= hugetlbpage-hash64.o
+ifdef CONFIG_HUGETLB_PAGE
+obj-$(CONFIG_PPC_RADIX_MMU)	+= hugetlbpage-radix.o
+endif
+obj-$(CONFIG_TRANSPARENT_HUGEPAGE) += hugepage-hash64.o
+obj-$(CONFIG_PPC_SUBPAGE_PROT)	+= subpage-prot.o
+obj-$(CONFIG_SPAPR_TCE_IOMMU)	+= mmu_context_iommu.o
+obj-$(CONFIG_PPC_MEM_KEYS)	+= pkeys.o
+
+# Instrumenting the SLB fault path can lead to duplicate SLB entries
+KCOV_INSTRUMENT_slb.o := n
diff --git a/arch/powerpc/mm/hash64_4k.c b/arch/powerpc/mm/book3s64/hash64_4k.c
similarity index 100%
rename from arch/powerpc/mm/hash64_4k.c
rename to arch/powerpc/mm/book3s64/hash64_4k.c
diff --git a/arch/powerpc/mm/hash64_64k.c b/arch/powerpc/mm/book3s64/hash64_64k.c
similarity index 100%
rename from arch/powerpc/mm/hash64_64k.c
rename to arch/powerpc/mm/book3s64/hash64_64k.c
diff --git a/arch/powerpc/mm/hash_native_64.c b/arch/powerpc/mm/book3s64/hash_native_64.c
similarity index 100%
rename from arch/powerpc/mm/hash_native_64.c
rename to arch/powerpc/mm/book3s64/hash_native_64.c
diff --git a/arch/powerpc/mm/hash_utils_64.c b/arch/powerpc/mm/book3s64/hash_utils_64.c
similarity index 100%
rename from arch/powerpc/mm/hash_utils_64.c
rename to arch/powerpc/mm/book3s64/hash_utils_64.c
diff --git a/arch/powerpc/mm/hugepage-hash64.c b/arch/powerpc/mm/book3s64/hugepage-hash64.c
similarity index 100%
rename from arch/powerpc/mm/hugepage-hash64.c
rename to arch/powerpc/mm/book3s64/hugepage-hash64.c
diff --git a/arch/powerpc/mm/hugetlbpage-hash64.c b/arch/powerpc/mm/book3s64/hugetlbpage-hash64.c
similarity index 100%
rename from arch/powerpc/mm/hugetlbpage-hash64.c
rename to arch/powerpc/mm/book3s64/hugetlbpage-hash64.c
diff --git a/arch/powerpc/mm/hugetlbpage-radix.c b/arch/powerpc/mm/book3s64/hugetlbpage-radix.c
similarity index 100%
rename from arch/powerpc/mm/hugetlbpage-radix.c
rename to arch/powerpc/mm/book3s64/hugetlbpage-radix.c
diff --git a/arch/powerpc/mm/mmu_context_book3s64.c b/arch/powerpc/mm/book3s64/mmu_context_book3s64.c
similarity index 100%
rename from arch/powerpc/mm/mmu_context_book3s64.c
rename to arch/powerpc/mm/book3s64/mmu_context_book3s64.c
diff --git a/arch/powerpc/mm/mmu_context_iommu.c b/arch/powerpc/mm/book3s64/mmu_context_iommu.c
similarity index 100%
rename from arch/powerpc/mm/mmu_context_iommu.c
rename to arch/powerpc/mm/book3s64/mmu_context_iommu.c
diff --git a/arch/powerpc/mm/pgtable-book3s64.c b/arch/powerpc/mm/book3s64/pgtable-book3s64.c
similarity index 100%
rename from arch/powerpc/mm/pgtable-book3s64.c
rename to arch/powerpc/mm/book3s64/pgtable-book3s64.c
diff --git a/arch/powerpc/mm/pgtable-hash64.c b/arch/powerpc/mm/book3s64/pgtable-hash64.c
similarity index 100%
rename from arch/powerpc/mm/pgtable-hash64.c
rename to arch/powerpc/mm/book3s64/pgtable-hash64.c
diff --git a/arch/powerpc/mm/pgtable-radix.c b/arch/powerpc/mm/book3s64/pgtable-radix.c
similarity index 100%
rename from arch/powerpc/mm/pgtable-radix.c
rename to arch/powerpc/mm/book3s64/pgtable-radix.c
diff --git a/arch/powerpc/mm/pkeys.c b/arch/powerpc/mm/book3s64/pkeys.c
similarity index 100%
rename from arch/powerpc/mm/pkeys.c
rename to arch/powerpc/mm/book3s64/pkeys.c
diff --git a/arch/powerpc/mm/slb.c b/arch/powerpc/mm/book3s64/slb.c
similarity index 100%
rename from arch/powerpc/mm/slb.c
rename to arch/powerpc/mm/book3s64/slb.c
diff --git a/arch/powerpc/mm/subpage-prot.c b/arch/powerpc/mm/book3s64/subpage-prot.c
similarity index 100%
rename from arch/powerpc/mm/subpage-prot.c
rename to arch/powerpc/mm/book3s64/subpage-prot.c
diff --git a/arch/powerpc/mm/tlb-radix.c b/arch/powerpc/mm/book3s64/tlb-radix.c
similarity index 100%
rename from arch/powerpc/mm/tlb-radix.c
rename to arch/powerpc/mm/book3s64/tlb-radix.c
diff --git a/arch/powerpc/mm/tlb_hash64.c b/arch/powerpc/mm/book3s64/tlb_hash64.c
similarity index 100%
rename from arch/powerpc/mm/tlb_hash64.c
rename to arch/powerpc/mm/book3s64/tlb_hash64.c
diff --git a/arch/powerpc/mm/vphn.c b/arch/powerpc/mm/book3s64/vphn.c
similarity index 100%
rename from arch/powerpc/mm/vphn.c
rename to arch/powerpc/mm/book3s64/vphn.c
diff --git a/arch/powerpc/mm/vphn.h b/arch/powerpc/mm/book3s64/vphn.h
similarity index 100%
rename from arch/powerpc/mm/vphn.h
rename to arch/powerpc/mm/book3s64/vphn.h
diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c
index f976676004ad..6ef516718da3 100644
--- a/arch/powerpc/mm/numa.c
+++ b/arch/powerpc/mm/numa.c
@@ -1063,7 +1063,7 @@  u64 memory_hotplug_max(void)
 /* Virtual Processor Home Node (VPHN) support */
 #ifdef CONFIG_PPC_SPLPAR
 
-#include "vphn.h"
+#include "book3s64/vphn.h"
 
 struct topology_update_data {
 	struct topology_update_data *next;