|
@@ -4681,7 +4681,8 @@ static unsigned long mem_cgroup_count_precharge(struct mm_struct *mm)
|
|
|
.mm = mm,
|
|
|
};
|
|
|
down_read(&mm->mmap_sem);
|
|
|
- walk_page_range(0, ~0UL, &mem_cgroup_count_precharge_walk);
|
|
|
+ walk_page_range(0, mm->highest_vm_end,
|
|
|
+ &mem_cgroup_count_precharge_walk);
|
|
|
up_read(&mm->mmap_sem);
|
|
|
|
|
|
precharge = mc.precharge;
|
|
@@ -4969,7 +4970,8 @@ retry:
|
|
|
* When we have consumed all precharges and failed in doing
|
|
|
* additional charge, the page walk just aborts.
|
|
|
*/
|
|
|
- walk_page_range(0, ~0UL, &mem_cgroup_move_charge_walk);
|
|
|
+ walk_page_range(0, mc.mm->highest_vm_end, &mem_cgroup_move_charge_walk);
|
|
|
+
|
|
|
up_read(&mc.mm->mmap_sem);
|
|
|
atomic_dec(&mc.from->moving_account);
|
|
|
}
|