It looks fine to me. Tested-by: Lin Feng <linfeng@xxxxxxxxxxxxxx> On 01/11/2013 05:53 PM, Michal Hocko wrote: > Defconfig for x86_64 complains: > arch/x86/mm/init_64.c: In function ‘vmemmap_free’: > arch/x86/mm/init_64.c:1317: error: implicit declaration of function ‘remove_pagetable’ > > vmemmap_free is only used for CONFIG_MEMORY_HOTPLUG so let's move it > inside ifdef > > Signed-off-by: Michal Hocko <mhocko@xxxxxxx> > --- > arch/x86/mm/init_64.c | 16 ++++++++-------- > include/linux/mm.h | 2 ++ > 2 files changed, 10 insertions(+), 8 deletions(-) > > diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c > index 9920ffc..ddd3b58 100644 > --- a/arch/x86/mm/init_64.c > +++ b/arch/x86/mm/init_64.c > @@ -981,6 +981,14 @@ remove_pagetable(unsigned long start, unsigned long end, bool direct) > flush_tlb_all(); > } > > +void __ref vmemmap_free(struct page *memmap, unsigned long nr_pages) > +{ > + unsigned long start = (unsigned long)memmap; > + unsigned long end = (unsigned long)(memmap + nr_pages); > + > + remove_pagetable(start, end, false); > +} > + > static void __meminit > kernel_physical_mapping_remove(unsigned long start, unsigned long end) > { > @@ -1309,14 +1317,6 @@ vmemmap_populate(struct page *start_page, unsigned long size, int node) > return 0; > } > > -void __ref vmemmap_free(struct page *memmap, unsigned long nr_pages) > -{ > - unsigned long start = (unsigned long)memmap; > - unsigned long end = (unsigned long)(memmap + nr_pages); > - > - remove_pagetable(start, end, false); > -} > - > void register_page_bootmem_memmap(unsigned long section_nr, > struct page *start_page, unsigned long size) > { > diff --git a/include/linux/mm.h b/include/linux/mm.h > index 0d880df..7c57bd0 100644 > --- a/include/linux/mm.h > +++ b/include/linux/mm.h > @@ -1721,7 +1721,9 @@ int vmemmap_populate_basepages(struct page *start_page, > unsigned long pages, int node); > int vmemmap_populate(struct page *start_page, unsigned long pages, int node); > void vmemmap_populate_print_last(void); > +#ifdef CONFIG_MEMORY_HOTPLUG > void vmemmap_free(struct page *memmap, unsigned long nr_pages); > +#endif > void register_page_bootmem_memmap(unsigned long section_nr, struct page *map, > unsigned long size); > > -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href