Simplify powernv memory_block_size call back by directly using 1G value
instead of using radix_mem_block_size. Also, remove the variable and use
memory_block_size_bytes() in the kernel mapping function. This gets called
in radix__early_init_mmu() which is called after probe_machine is called
and correct machine-specific callback is assigned.

No functional change in this patch.

Signed-off-by: Aneesh Kumar K.V <aneesh.ku...@linux.ibm.com>
---
 arch/powerpc/include/asm/book3s/64/mmu.h |  5 --
 arch/powerpc/mm/book3s64/radix_pgtable.c | 64 +-----------------------
 arch/powerpc/platforms/powernv/setup.c   |  4 +-
 3 files changed, 3 insertions(+), 70 deletions(-)

diff --git a/arch/powerpc/include/asm/book3s/64/mmu.h 
b/arch/powerpc/include/asm/book3s/64/mmu.h
index 570a4960cf17..7b7643f32e0e 100644
--- a/arch/powerpc/include/asm/book3s/64/mmu.h
+++ b/arch/powerpc/include/asm/book3s/64/mmu.h
@@ -71,11 +71,6 @@ extern unsigned int mmu_pid_bits;
 /* Base PID to allocate from */
 extern unsigned int mmu_base_pid;
 
-/*
- * memory block size used with radix translation.
- */
-extern unsigned long __ro_after_init radix_mem_block_size;
-
 #define PRTB_SIZE_SHIFT        (mmu_pid_bits + 4)
 #define PRTB_ENTRIES   (1ul << mmu_pid_bits)
 
diff --git a/arch/powerpc/mm/book3s64/radix_pgtable.c 
b/arch/powerpc/mm/book3s64/radix_pgtable.c
index 2297aa764ecd..905cfa0af1ae 100644
--- a/arch/powerpc/mm/book3s64/radix_pgtable.c
+++ b/arch/powerpc/mm/book3s64/radix_pgtable.c
@@ -37,7 +37,6 @@
 #include <mm/mmu_decl.h>
 
 unsigned int mmu_base_pid;
-unsigned long radix_mem_block_size __ro_after_init;
 
 static __ref void *early_alloc_pgtable(unsigned long size, int nid,
                        unsigned long region_start, unsigned long region_end)
@@ -300,7 +299,7 @@ static int __meminit create_physical_mapping(unsigned long 
start,
        bool prev_exec, exec = false;
        pgprot_t prot;
        int psize;
-       unsigned long max_mapping_size = radix_mem_block_size;
+       unsigned long max_mapping_size = memory_block_size_bytes();
 
        if (debug_pagealloc_enabled_or_kfence())
                max_mapping_size = PAGE_SIZE;
@@ -502,58 +501,6 @@ static int __init radix_dt_scan_page_sizes(unsigned long 
node,
        return 1;
 }
 
-#ifdef CONFIG_MEMORY_HOTPLUG
-static int __init probe_memory_block_size(unsigned long node, const char 
*uname, int
-                                         depth, void *data)
-{
-       unsigned long *mem_block_size = (unsigned long *)data;
-       const __be32 *prop;
-       int len;
-
-       if (depth != 1)
-               return 0;
-
-       if (strcmp(uname, "ibm,dynamic-reconfiguration-memory"))
-               return 0;
-
-       prop = of_get_flat_dt_prop(node, "ibm,lmb-size", &len);
-
-       if (!prop || len < dt_root_size_cells * sizeof(__be32))
-               /*
-                * Nothing in the device tree
-                */
-               *mem_block_size = MIN_MEMORY_BLOCK_SIZE;
-       else
-               *mem_block_size = of_read_number(prop, dt_root_size_cells);
-       return 1;
-}
-
-static unsigned long __init radix_memory_block_size(void)
-{
-       unsigned long mem_block_size = MIN_MEMORY_BLOCK_SIZE;
-
-       /*
-        * OPAL firmware feature is set by now. Hence we are ok
-        * to test OPAL feature.
-        */
-       if (firmware_has_feature(FW_FEATURE_OPAL))
-               mem_block_size = 1UL * 1024 * 1024 * 1024;
-       else
-               of_scan_flat_dt(probe_memory_block_size, &mem_block_size);
-
-       return mem_block_size;
-}
-
-#else   /* CONFIG_MEMORY_HOTPLUG */
-
-static unsigned long __init radix_memory_block_size(void)
-{
-       return 1UL * 1024 * 1024 * 1024;
-}
-
-#endif /* CONFIG_MEMORY_HOTPLUG */
-
-
 void __init radix__early_init_devtree(void)
 {
        int rc;
@@ -578,15 +525,6 @@ void __init radix__early_init_devtree(void)
                        psize_to_rpti_pgsize(MMU_PAGE_64K);
        }
 
-       /*
-        * Max mapping size used when mapping pages. We don't use
-        * ppc_md.memory_block_size() here because this get called
-        * early and we don't have machine probe called yet. Also
-        * the pseries implementation only check for ibm,lmb-size.
-        * All hypervisor supporting radix do expose that device
-        * tree node.
-        */
-       radix_mem_block_size = radix_memory_block_size();
        return;
 }
 
diff --git a/arch/powerpc/platforms/powernv/setup.c 
b/arch/powerpc/platforms/powernv/setup.c
index 5e9c6b55809f..29f855c66ad3 100644
--- a/arch/powerpc/platforms/powernv/setup.c
+++ b/arch/powerpc/platforms/powernv/setup.c
@@ -488,9 +488,9 @@ static unsigned long pnv_memory_block_size(void)
         * this size.
         */
        if (radix_enabled())
-               return radix_mem_block_size;
+               return 1UL << 30;
        else
-               return 256UL * 1024 * 1024;
+               return 256UL << 20;
 }
 #endif
 
-- 
2.40.1

Reply via email to