Skip hugetlb vmas as we are not interested in those. Signed-off-by: Oscar Salvador <osalvador@xxxxxxx> --- mm/memcontrol-v1.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/mm/memcontrol-v1.c b/mm/memcontrol-v1.c index 99cc9501eec1..542922562cf9 100644 --- a/mm/memcontrol-v1.c +++ b/mm/memcontrol-v1.c @@ -1319,8 +1319,20 @@ static int mem_cgroup_move_charge_pte_range(pmd_t *pmd, return ret; } +static int mem_cgroup_move_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; +} + static const struct mm_walk_ops charge_walk_ops = { .pmd_entry = mem_cgroup_move_charge_pte_range, + .test_walk = mem_cgroup_move_test_walk, .walk_lock = PGWALK_RDLOCK, }; -- 2.26.2