[PATCH 2/4] powerpc: implement vmemmap_remove_mapping() for BOOK3S
Nathan Fontenot
nfont at linux.vnet.ibm.com
Fri Jul 25 01:12:15 EST 2014
On 06/11/2014 03:23 AM, Li Zhong wrote:
> This is to be called in vmemmap_free(), leave the implementation on BOOK3E
> empty as before.
>
> Signed-off-by: Li Zhong <zhong at linux.vnet.ibm.com>
> Cc: Nathan Fontenot <nfont at linux.vnet.ibm.com>
Acked-by: Nathan Fontenot <nfont at linux.vnet.ibm.com>
> ---
> arch/powerpc/mm/hash_utils_64.c | 2 +-
> arch/powerpc/mm/init_64.c | 22 ++++++++++++++++++++++
> 2 files changed, 23 insertions(+), 1 deletion(-)
>
> diff --git a/arch/powerpc/mm/hash_utils_64.c b/arch/powerpc/mm/hash_utils_64.c
> index 88fdd9d..25d9d66 100644
> --- a/arch/powerpc/mm/hash_utils_64.c
> +++ b/arch/powerpc/mm/hash_utils_64.c
> @@ -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;
> diff --git a/arch/powerpc/mm/init_64.c b/arch/powerpc/mm/init_64.c
> index fa5d28b..69203c8 100644
> --- a/arch/powerpc/mm/init_64.c
> +++ b/arch/powerpc/mm/init_64.c
> @@ -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;
>
More information about the Linuxppc-dev
mailing list