Skip hugetlb vmas as we are not interested in those. Signed-off-by: Oscar Salvador <osalvador@xxxxxxx> --- mm/mlock.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/mm/mlock.c b/mm/mlock.c index 52d6e401ad67..b37079b3505f 100644 --- a/mm/mlock.c +++ b/mm/mlock.c @@ -409,6 +409,17 @@ static int mlock_pte_range(pmd_t *pmd, unsigned long addr, return 0; } +static int mlock_test_walk(unsigned long start, unsigned long end, + struct mm_walk *walk) +{ + struct vm_area_struct *vma = walk->vma; + + if (is_vm_hugetlb_page(vma)) + return 1; + + return 0; +} + /* * mlock_vma_pages_range() - mlock any pages already in the range, * or munlock all pages in the range. @@ -425,6 +436,7 @@ static void mlock_vma_pages_range(struct vm_area_struct *vma, { static const struct mm_walk_ops mlock_walk_ops = { .pmd_entry = mlock_pte_range, + .test_walk = mlock_test_walk, .walk_lock = PGWALK_WRLOCK_VERIFY, }; -- 2.26.2