On 11/6/20 12:01 AM, Christoph Hellwig wrote:
+#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?

Same problem as with prep_transhuge_device_private_page(), since
alloc_hugepage_direct_gfpmask() and alloc_hugepage_vma() are not
EXPORT_SYMBOL_GPL.

+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.

Sure, I'll do that for v4.

Reply via email to