linux-next: build failure after merge of the akpm tree

From: Stephen Rothwell
Date: Mon Feb 04 2013 - 02:17:42 EST


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 <sfr@xxxxxxxxxxxxxxxx>
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 <sfr@xxxxxxxxxxxxxxxx>
---
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@xxxxxxxxxxxxxxxx

Attachment: pgp00000.pgp
Description: PGP signature