powerpc: make memremap_compat_align 64s-only
authorNicholas Piggin <npiggin@gmail.com>
Wed, 1 Dec 2021 14:41:47 +0000 (00:41 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 2 Dec 2021 11:57:24 +0000 (22:57 +1100)
memremap_compat_align is only relevant when ZONE_DEVICE is selected.
ZONE_DEVICE depends on ARCH_HAS_PTE_DEVMAP, which is only selected
by PPC_BOOK3S_64.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20211201144153.2456614-13-npiggin@gmail.com
arch/powerpc/Kconfig
arch/powerpc/mm/book3s64/pgtable.c
arch/powerpc/mm/ioremap.c

index 5c61f3511d5ae0ef91d1233e3c8d8cfcf3a26b64..e3e281a35327ada86b4db3ae70a59c6096335226 100644 (file)
@@ -129,7 +129,7 @@ config PPC
        select ARCH_HAS_KCOV
        select ARCH_HAS_MEMBARRIER_CALLBACKS
        select ARCH_HAS_MEMBARRIER_SYNC_CORE
-       select ARCH_HAS_MEMREMAP_COMPAT_ALIGN
+       select ARCH_HAS_MEMREMAP_COMPAT_ALIGN   if PPC_BOOK3S_64
        select ARCH_HAS_MMIOWB                  if PPC64
        select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE
        select ARCH_HAS_PHYS_TO_DMA
index 0e625416067348658e5fd9f2c8aa20a83c403394..d3b01f6ba530492a45bf741a4c5817d87d1efeca 100644 (file)
@@ -528,3 +528,23 @@ static int __init pgtable_debugfs_setup(void)
        return 0;
 }
 arch_initcall(pgtable_debugfs_setup);
+
+#ifdef CONFIG_ZONE_DEVICE
+/*
+ * Override the generic version in mm/memremap.c.
+ *
+ * With hash translation, the direct-map range is mapped with just one
+ * page size selected by htab_init_page_sizes(). Consult
+ * mmu_psize_defs[] to determine the minimum page size alignment.
+*/
+unsigned long memremap_compat_align(void)
+{
+       if (!radix_enabled()) {
+               unsigned int shift = mmu_psize_defs[mmu_linear_psize].shift;
+               return max(SUBSECTION_SIZE, 1UL << shift);
+       }
+
+       return SUBSECTION_SIZE;
+}
+EXPORT_SYMBOL_GPL(memremap_compat_align);
+#endif
index 57342154d2b0554b77c22cc5571c4e6836ee7209..4f12504fb405b170d58d46f4636d7f99e6e6d368 100644 (file)
@@ -98,23 +98,3 @@ void __iomem *do_ioremap(phys_addr_t pa, phys_addr_t offset, unsigned long size,
 
        return NULL;
 }
-
-#ifdef CONFIG_ZONE_DEVICE
-/*
- * Override the generic version in mm/memremap.c.
- *
- * With hash translation, the direct-map range is mapped with just one
- * page size selected by htab_init_page_sizes(). Consult
- * mmu_psize_defs[] to determine the minimum page size alignment.
-*/
-unsigned long memremap_compat_align(void)
-{
-       unsigned int shift = mmu_psize_defs[mmu_linear_psize].shift;
-
-       if (radix_enabled())
-               return SUBSECTION_SIZE;
-       return max(SUBSECTION_SIZE, 1UL << shift);
-
-}
-EXPORT_SYMBOL_GPL(memremap_compat_align);
-#endif