aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorReza Arbab <arbab@linux.vnet.ibm.com>2017-01-16 14:07:44 -0500
committerMichael Ellerman <mpe@ellerman.id.au>2017-01-30 21:54:19 -0500
commit6cc27341b21a81052f36c137bc44cf55f83e46ff (patch)
tree8fbbf23d0908bd5d1a32296e8fe3412d10c4b94e
parentb5200ec9edf038459619fce9988842efa751a2c5 (diff)
powerpc/mm: add radix__create_section_mapping()
Wire up memory hotplug page mapping for radix. Share the mapping function already used by radix_init_pgtable(). Signed-off-by: Reza Arbab <arbab@linux.vnet.ibm.com> Acked-by: Balbir Singh <bsingharora@gmail.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
-rw-r--r--arch/powerpc/include/asm/book3s/64/radix.h4
-rw-r--r--arch/powerpc/mm/pgtable-book3s64.c2
-rw-r--r--arch/powerpc/mm/pgtable-radix.c7
3 files changed, 12 insertions, 1 deletions
diff --git a/arch/powerpc/include/asm/book3s/64/radix.h b/arch/powerpc/include/asm/book3s/64/radix.h
index b4d1302387a3..43c25718de61 100644
--- a/arch/powerpc/include/asm/book3s/64/radix.h
+++ b/arch/powerpc/include/asm/book3s/64/radix.h
@@ -291,5 +291,9 @@ static inline unsigned long radix__get_tree_size(void)
291 } 291 }
292 return rts_field; 292 return rts_field;
293} 293}
294
295#ifdef CONFIG_MEMORY_HOTPLUG
296int radix__create_section_mapping(unsigned long start, unsigned long end);
297#endif /* CONFIG_MEMORY_HOTPLUG */
294#endif /* __ASSEMBLY__ */ 298#endif /* __ASSEMBLY__ */
295#endif 299#endif
diff --git a/arch/powerpc/mm/pgtable-book3s64.c b/arch/powerpc/mm/pgtable-book3s64.c
index 653ff6c74ebe..2b13f6b87e25 100644
--- a/arch/powerpc/mm/pgtable-book3s64.c
+++ b/arch/powerpc/mm/pgtable-book3s64.c
@@ -131,7 +131,7 @@ void mmu_cleanup_all(void)
131int create_section_mapping(unsigned long start, unsigned long end) 131int create_section_mapping(unsigned long start, unsigned long end)
132{ 132{
133 if (radix_enabled()) 133 if (radix_enabled())
134 return -ENODEV; 134 return radix__create_section_mapping(start, end);
135 135
136 return hash__create_section_mapping(start, end); 136 return hash__create_section_mapping(start, end);
137} 137}
diff --git a/arch/powerpc/mm/pgtable-radix.c b/arch/powerpc/mm/pgtable-radix.c
index c0365eca7f81..7829e09ab4dd 100644
--- a/arch/powerpc/mm/pgtable-radix.c
+++ b/arch/powerpc/mm/pgtable-radix.c
@@ -481,6 +481,13 @@ void radix__setup_initial_memory_limit(phys_addr_t first_memblock_base,
481 memblock_set_current_limit(first_memblock_base + first_memblock_size); 481 memblock_set_current_limit(first_memblock_base + first_memblock_size);
482} 482}
483 483
484#ifdef CONFIG_MEMORY_HOTPLUG
485int __ref radix__create_section_mapping(unsigned long start, unsigned long end)
486{
487 return create_physical_mapping(start, end);
488}
489#endif /* CONFIG_MEMORY_HOTPLUG */
490
484#ifdef CONFIG_SPARSEMEM_VMEMMAP 491#ifdef CONFIG_SPARSEMEM_VMEMMAP
485int __meminit radix__vmemmap_create_mapping(unsigned long start, 492int __meminit radix__vmemmap_create_mapping(unsigned long start,
486 unsigned long page_size, 493 unsigned long page_size,