mm/memory.c: mark wp_huge_pmd() inline to prevent build failure
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. Fix this by marking wp_huge_pmd() inline, like was done in commit91a90140f9
("mm/memory.c: mark create_huge_pmd() inline to prevent build failure") for a similar problem. [akpm@linux-foundation.org: add comment] Link: http://lkml.kernel.org/r/1512335500-10889-1-git-send-email-geert@linux-m68k.org Fixes:c7da82b894
("mm: replace pmd_write with pmd_access_permitted in fault + gup paths") Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
4cc90b4cc3
commit
183f24aa5b
|
@ -3831,7 +3831,8 @@ 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)
|
||||
/* `inline' is required to avoid gcc 4.1.2 build error */
|
||||
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);
|
||||
|
|
Loading…
Reference in New Issue