+#ifdef CONFIG_TRANSPARENT_HUGEPAGE +extern struct page *alloc_transhugepage(struct vm_area_struct *vma,
unsigned long addr);
No need for the extern. And also here: do we actually need the stub, or can the caller make sure (using IS_ENABLED and similar) that the compiler knows the code is dead?
+struct page *alloc_transhugepage(struct vm_area_struct *vma,
unsigned long haddr)
+{
- gfp_t gfp;
- struct page *page;
- gfp = alloc_hugepage_direct_gfpmask(vma);
- page = alloc_hugepage_vma(gfp, vma, haddr, HPAGE_PMD_ORDER);
- if (page)
prep_transhuge_page(page);
- return page;
I think do_huge_pmd_anonymous_page should be switched to use this helper as well.