From: Badari Pulavarty arch/powerpc/mm/init_64.c: In function `vmemmap_populated': arch/powerpc/mm/init_64.c:211: warning: passing arg 1 of `vmemmap_section_start' makes pointer from integer without a cast vmemmap_section_start() gets called with an argument which is unsigned long. Signed-off-by: Badari Pulavarty Cc: Andy Whitcroft Signed-off-by: Andrew Morton --- diff -puN arch/powerpc/mm/init_64.c~ppc64-sparsemem_vmemmap-support-vmemmap-ppc64-convert-vmm_-macros-to-a-real-function-fix arch/powerpc/mm/init_64.c --- a/arch/powerpc/mm/init_64.c~ppc64-sparsemem_vmemmap-support-vmemmap-ppc64-convert-vmm_-macros-to-a-real-function-fix +++ a/arch/powerpc/mm/init_64.c @@ -190,10 +190,9 @@ void pgtable_cache_init(void) * do this by hand as the proffered address may not be correctly aligned. * Subtraction of non-aligned pointers produces undefined results. */ -unsigned long __meminit vmemmap_section_start(struct page *page) +unsigned long __meminit vmemmap_section_start(unsigned long page) { - unsigned long offset = ((unsigned long)page) - - ((unsigned long)(vmemmap)); + unsigned long offset = page - ((unsigned long)(vmemmap)); /* Return the pfn of the start of the section. */ return (offset / sizeof(struct page)) & PAGE_SECTION_MASK; _