powerpc/mm: Pass node id into create_section_mapping
Signed-off-by: Nicholas Piggin <npiggin@gmail.com> [mpe: Move __map_kernel_page_nid() inside #ifdef SPARSEMEM_VMEMMAP] Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
parent
2ad452ffaa
commit
29ab6c4708
|
@ -201,7 +201,7 @@ extern int __meminit hash__vmemmap_create_mapping(unsigned long start,
|
|||
extern void hash__vmemmap_remove_mapping(unsigned long start,
|
||||
unsigned long page_size);
|
||||
|
||||
int hash__create_section_mapping(unsigned long start, unsigned long end);
|
||||
int hash__create_section_mapping(unsigned long start, unsigned long end, int nid);
|
||||
int hash__remove_section_mapping(unsigned long start, unsigned long end);
|
||||
|
||||
#endif /* !__ASSEMBLY__ */
|
||||
|
|
|
@ -313,7 +313,7 @@ static inline unsigned long radix__get_tree_size(void)
|
|||
}
|
||||
|
||||
#ifdef CONFIG_MEMORY_HOTPLUG
|
||||
int radix__create_section_mapping(unsigned long start, unsigned long end);
|
||||
int radix__create_section_mapping(unsigned long start, unsigned long end, int nid);
|
||||
int radix__remove_section_mapping(unsigned long start, unsigned long end);
|
||||
#endif /* CONFIG_MEMORY_HOTPLUG */
|
||||
#endif /* __ASSEMBLY__ */
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
#endif /* CONFIG_SPARSEMEM */
|
||||
|
||||
#ifdef CONFIG_MEMORY_HOTPLUG
|
||||
extern int create_section_mapping(unsigned long start, unsigned long end);
|
||||
extern int create_section_mapping(unsigned long start, unsigned long end, int nid);
|
||||
extern int remove_section_mapping(unsigned long start, unsigned long end);
|
||||
|
||||
#ifdef CONFIG_PPC_BOOK3S_64
|
||||
|
|
|
@ -781,7 +781,7 @@ void resize_hpt_for_hotplug(unsigned long new_mem_size)
|
|||
}
|
||||
}
|
||||
|
||||
int hash__create_section_mapping(unsigned long start, unsigned long end)
|
||||
int hash__create_section_mapping(unsigned long start, unsigned long end, int nid)
|
||||
{
|
||||
int rc = htab_bolt_mapping(start, end, __pa(start),
|
||||
pgprot_val(PAGE_KERNEL), mmu_linear_psize,
|
||||
|
|
|
@ -117,7 +117,7 @@ int memory_add_physaddr_to_nid(u64 start)
|
|||
}
|
||||
#endif
|
||||
|
||||
int __weak create_section_mapping(unsigned long start, unsigned long end)
|
||||
int __weak create_section_mapping(unsigned long start, unsigned long end, int nid)
|
||||
{
|
||||
return -ENODEV;
|
||||
}
|
||||
|
@ -137,7 +137,7 @@ int arch_add_memory(int nid, u64 start, u64 size, struct vmem_altmap *altmap,
|
|||
resize_hpt_for_hotplug(memblock_phys_mem_size());
|
||||
|
||||
start = (unsigned long)__va(start);
|
||||
rc = create_section_mapping(start, start + size);
|
||||
rc = create_section_mapping(start, start + size, nid);
|
||||
if (rc) {
|
||||
pr_warn("Unable to create mapping for hot added memory 0x%llx..0x%llx: %d\n",
|
||||
start, start + size, rc);
|
||||
|
|
|
@ -155,12 +155,12 @@ void mmu_cleanup_all(void)
|
|||
}
|
||||
|
||||
#ifdef CONFIG_MEMORY_HOTPLUG
|
||||
int create_section_mapping(unsigned long start, unsigned long end)
|
||||
int create_section_mapping(unsigned long start, unsigned long end, int nid)
|
||||
{
|
||||
if (radix_enabled())
|
||||
return radix__create_section_mapping(start, end);
|
||||
return radix__create_section_mapping(start, end, nid);
|
||||
|
||||
return hash__create_section_mapping(start, end);
|
||||
return hash__create_section_mapping(start, end, nid);
|
||||
}
|
||||
|
||||
int remove_section_mapping(unsigned long start, unsigned long end)
|
||||
|
|
|
@ -171,13 +171,6 @@ set_the_pte:
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int __map_kernel_page_nid(unsigned long ea, unsigned long pa,
|
||||
pgprot_t flags,
|
||||
unsigned int map_page_size, int nid)
|
||||
{
|
||||
return __map_kernel_page(ea, pa, flags, map_page_size, nid, 0, 0);
|
||||
}
|
||||
|
||||
int radix__map_kernel_page(unsigned long ea, unsigned long pa,
|
||||
pgprot_t flags,
|
||||
unsigned int map_page_size)
|
||||
|
@ -860,9 +853,9 @@ static void remove_pagetable(unsigned long start, unsigned long end)
|
|||
radix__flush_tlb_kernel_range(start, end);
|
||||
}
|
||||
|
||||
int __ref radix__create_section_mapping(unsigned long start, unsigned long end)
|
||||
int __ref radix__create_section_mapping(unsigned long start, unsigned long end, int nid)
|
||||
{
|
||||
return create_physical_mapping(start, end, -1);
|
||||
return create_physical_mapping(start, end, nid);
|
||||
}
|
||||
|
||||
int radix__remove_section_mapping(unsigned long start, unsigned long end)
|
||||
|
@ -873,6 +866,13 @@ int radix__remove_section_mapping(unsigned long start, unsigned long end)
|
|||
#endif /* CONFIG_MEMORY_HOTPLUG */
|
||||
|
||||
#ifdef CONFIG_SPARSEMEM_VMEMMAP
|
||||
static int __map_kernel_page_nid(unsigned long ea, unsigned long pa,
|
||||
pgprot_t flags, unsigned int map_page_size,
|
||||
int nid)
|
||||
{
|
||||
return __map_kernel_page(ea, pa, flags, map_page_size, nid, 0, 0);
|
||||
}
|
||||
|
||||
int __meminit radix__vmemmap_create_mapping(unsigned long start,
|
||||
unsigned long page_size,
|
||||
unsigned long phys)
|
||||
|
|
Loading…
Reference in New Issue