powerpc: implement vmemmap_remove_mapping() for BOOK3S
This is to be called in vmemmap_free(), leave the implementation on BOOK3E empty as before. Signed-off-by: Li Zhong <zhong@linux.vnet.ibm.com> Cc: Nathan Fontenot <nfont@linux.vnet.ibm.com> Acked-by: Nathan Fontenot <nfont@linux.vnet.ibm.com> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
parent
bd8cb03dbe
commit
ed5694a846
|
@ -243,7 +243,7 @@ int htab_bolt_mapping(unsigned long vstart, unsigned long vend,
|
|||
}
|
||||
|
||||
#ifdef CONFIG_MEMORY_HOTPLUG
|
||||
static int htab_remove_mapping(unsigned long vstart, unsigned long vend,
|
||||
int htab_remove_mapping(unsigned long vstart, unsigned long vend,
|
||||
int psize, int ssize)
|
||||
{
|
||||
unsigned long vaddr;
|
||||
|
|
|
@ -212,6 +212,13 @@ static void __meminit vmemmap_create_mapping(unsigned long start,
|
|||
for (i = 0; i < page_size; i += PAGE_SIZE)
|
||||
BUG_ON(map_kernel_page(start + i, phys, flags));
|
||||
}
|
||||
|
||||
#ifdef CONFIG_MEMORY_HOTPLUG
|
||||
static void vmemmap_remove_mapping(unsigned long start,
|
||||
unsigned long page_size)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
#else /* CONFIG_PPC_BOOK3E */
|
||||
static void __meminit vmemmap_create_mapping(unsigned long start,
|
||||
unsigned long page_size,
|
||||
|
@ -223,6 +230,21 @@ static void __meminit vmemmap_create_mapping(unsigned long start,
|
|||
mmu_kernel_ssize);
|
||||
BUG_ON(mapped < 0);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_MEMORY_HOTPLUG
|
||||
extern int htab_remove_mapping(unsigned long vstart, unsigned long vend,
|
||||
int psize, int ssize);
|
||||
|
||||
static void vmemmap_remove_mapping(unsigned long start,
|
||||
unsigned long page_size)
|
||||
{
|
||||
int mapped = htab_remove_mapping(start, start + page_size,
|
||||
mmu_vmemmap_psize,
|
||||
mmu_kernel_ssize);
|
||||
BUG_ON(mapped < 0);
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* CONFIG_PPC_BOOK3E */
|
||||
|
||||
struct vmemmap_backing *vmemmap_list;
|
||||
|
|
Loading…
Reference in New Issue