On Mon, Oct 11, 2010 at 01:11:31PM +0200, Heiko Carstens wrote: > "hugetlb: hugepage migration core" in linux-next breaks compilation on s390: > > CC mm/migrate.o > mm/migrate.c: In function 'remove_migration_pte': > mm/migrate.c:143:3: error: implicit declaration of function 'pte_mkhuge' > mm/migrate.c:143:7: error: incompatible types when assigning to type 'pte_t' from type 'int' > make[1]: *** [mm/migrate.o] Error 1 > make: *** [mm/migrate.o] Error 2 > > This is simply because a lot of CONFIG_HUGETLB_PAGE dependent code was added > to mm/migration.c which does not depend on that config option. Please fix. Most of the functions have inline dummies, just pte_mkhuge() doesn't. Anyways the easiest fix would be a simple #ifdef. Does this patch work for you? -Andi From: Andi Kleen <ak@xxxxxxxxxxxxxxx> Subject: [PATCH] Fix migration.c compilation on s390 s390 doesn't have huge pages and failed with > mm/migrate.c: In function 'remove_migration_pte': > mm/migrate.c:143:3: error: implicit declaration of function 'pte_mkhuge' > mm/migrate.c:143:7: error: incompatible types when assigning to type 'pte_t' from type 'int' Put that code into a ifdef. Reported by Heiko Carstens Signed-off-by: Andi Kleen <ak@xxxxxxxxxxxxxxx> diff --git a/mm/migrate.c b/mm/migrate.c index 55dbc45..f8c9bcc 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -139,8 +139,10 @@ static int remove_migration_pte(struct page *new, struct vm_area_struct *vma, pte = pte_mkold(mk_pte(new, vma->vm_page_prot)); if (is_write_migration_entry(entry)) pte = pte_mkwrite(pte); +#ifdef CONFIG_HUGETLB_PAGE if (PageHuge(new)) pte = pte_mkhuge(pte); +#endif flush_cache_page(vma, addr, pte_pfn(pte)); set_pte_at(mm, addr, ptep, pte); -- To unsubscribe from this list: send the line "unsubscribe linux-next" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html