On Sun, Dec 3, 2017 at 10:11 PM, Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> wrote: > With gcc 4.1.2: > > mm/memory.o: In function `wp_huge_pmd': > memory.c:(.text+0x9b4): undefined reference to `do_huge_pmd_wp_page' > > Interestingly, wp_huge_pmd() is emitted in the assembler output, but > never called. > > Apparently replacing the call to pmd_write() in __handle_mm_fault() by a > call to the more complex pmd_access_permitted() reduced the ability of > the compiler to remove unused code. An alternative would be to start using #ifdefs and dummies for the !CONFIG_TRANSPARENT_HUGEPAGE case, instead of relying on the varying degree of ability of the various compiler versions to do dead code analysis and elimination. > Fix this by marking wp_huge_pmd() inline, like was done in commit > 91a90140f9987101 ("mm/memory.c: mark create_huge_pmd() inline to prevent > build failure") for a similar problem. > > Fixes: c7da82b894e9eef6 ("mm: replace pmd_write with pmd_access_permitted in fault + gup paths") > Signed-off-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> > --- > mm/memory.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/mm/memory.c b/mm/memory.c > index 5eb3d2524bdc2823..f4d52847ca07a414 100644 > --- a/mm/memory.c > +++ b/mm/memory.c > @@ -3831,7 +3831,7 @@ static inline int create_huge_pmd(struct vm_fault *vmf) > return VM_FAULT_FALLBACK; > } > > -static int wp_huge_pmd(struct vm_fault *vmf, pmd_t orig_pmd) > +static inline int wp_huge_pmd(struct vm_fault *vmf, pmd_t orig_pmd) > { > if (vma_is_anonymous(vmf->vma)) > return do_huge_pmd_wp_page(vmf, orig_pmd); Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>