Hi Andrew, After merging the akpm tree, today's linux-next build (x86_64 allmodconfig) failed like this: arch/x86/mm/init_64.c: In function 'remove_pmd_table': arch/x86/mm/init_64.c:921:3: error: implicit declaration of function 'map_low_page' [-Werror=implicit-function-declaration] arch/x86/mm/init_64.c:921:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] arch/x86/mm/init_64.c:924:3: error: implicit declaration of function 'unmap_low_page' [-Werror=implicit-function-declaration] arch/x86/mm/init_64.c: In function 'remove_pud_table': arch/x86/mm/init_64.c:978:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] arch/x86/mm/init_64.c: In function 'remove_pagetable': arch/x86/mm/init_64.c:1004:9: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] Caused by commit "memory-hotplug: common APIs to support page tables hot-remove" from the akpm tree interacting with commit 973dc4f3fad5 ("x86, mm: Remove early_memremap workaround for page table accessing on 64bit") from the tip tree. I applied the following merge fix patch: From: Stephen Rothwell Date: Mon, 4 Feb 2013 18:12:17 +1100 Subject: [PATCH] memory-hotplug: common APIs to support page tables hot-remove fix fix Signed-off-by: Stephen Rothwell --- arch/x86/mm/init_64.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c index 951cc1e..67bad4b 100644 --- a/arch/x86/mm/init_64.c +++ b/arch/x86/mm/init_64.c @@ -918,10 +918,9 @@ remove_pmd_table(pmd_t *pmd_start, unsigned long addr, unsigned long end, continue; } - pte_base = (pte_t *)map_low_page((pte_t *)pmd_page_vaddr(*pmd)); + pte_base = (pte_t *)pmd_page_vaddr(*pmd); remove_pte_table(pte_base, addr, next, direct); free_pte_table(pte_base, pmd); - unmap_low_page(pte_base); } /* Call free_pmd_table() in remove_pud_table(). */ @@ -975,10 +974,9 @@ remove_pud_table(pud_t *pud_start, unsigned long addr, unsigned long end, continue; } - pmd_base = (pmd_t *)map_low_page((pmd_t *)pud_page_vaddr(*pud)); + pmd_base = (pmd_t *)pud_page_vaddr(*pud); remove_pmd_table(pmd_base, addr, next, direct); free_pmd_table(pmd_base, pud); - unmap_low_page(pmd_base); } if (direct) @@ -1001,11 +999,10 @@ remove_pagetable(unsigned long start, unsigned long end, bool direct) next = pgd_addr_end(start, end); - pud = (pud_t *)map_low_page((pud_t *)pgd_page_vaddr(*pgd)); + pud = (pud_t *)pgd_page_vaddr(*pgd); remove_pud_table(pud, start, next, direct); if (free_pud_table(pud, pgd)) pgd_changed = true; - unmap_low_page(pud); } if (pgd_changed) -- 1.8.1 -- Cheers, Stephen Rothwell sfr@canb.auug.org.au