diff options
author | Anshuman Khandual <khandual@linux.vnet.ibm.com> | 2017-07-06 18:38:50 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-07-06 19:24:33 -0400 |
commit | faaa5b62d3f7907e217b179556038f9f8e157ee0 (patch) | |
tree | cfbe5a1a2bac22c215bbb2599330017cfdac1916 /mm/gup.c | |
parent | d5ed7444dafb94b6877410d1b66a846eb7184a09 (diff) |
mm/follow_page_mask: add support for hugetlb pgd entries
ppc64 supports pgd hugetlb entries. Add code to handle hugetlb pgd
entries to follow_page_mask so that ppc64 can switch to it to handle
hugetlbe entries.
Link: http://lkml.kernel.org/r/1494926612-23928-5-git-send-email-aneesh.kumar@linux.vnet.ibm.com
Signed-off-by: Anshuman Khandual <khandual@linux.vnet.ibm.com>
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Mike Kravetz <kravetz@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/gup.c')
-rw-r--r-- | mm/gup.c | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -357,6 +357,13 @@ struct page *follow_page_mask(struct vm_area_struct *vma, | |||
357 | if (pgd_none(*pgd) || unlikely(pgd_bad(*pgd))) | 357 | if (pgd_none(*pgd) || unlikely(pgd_bad(*pgd))) |
358 | return no_page_table(vma, flags); | 358 | return no_page_table(vma, flags); |
359 | 359 | ||
360 | if (pgd_huge(*pgd)) { | ||
361 | page = follow_huge_pgd(mm, address, pgd, flags); | ||
362 | if (page) | ||
363 | return page; | ||
364 | return no_page_table(vma, flags); | ||
365 | } | ||
366 | |||
360 | return follow_p4d_mask(vma, address, pgd, flags, page_mask); | 367 | return follow_p4d_mask(vma, address, pgd, flags, page_mask); |
361 | } | 368 | } |
362 | 369 | ||