PCI: Release IVRS table in AMD ACS quirk
[linux-2.6-microblaze.git] / mm / memcontrol.c
index 3dde78f..0b38b6a 100644 (file)
@@ -5614,9 +5614,9 @@ static unsigned long mem_cgroup_count_precharge(struct mm_struct *mm)
 {
        unsigned long precharge;
 
-       down_read(&mm->mmap_sem);
+       mmap_read_lock(mm);
        walk_page_range(mm, 0, mm->highest_vm_end, &precharge_walk_ops, NULL);
-       up_read(&mm->mmap_sem);
+       mmap_read_unlock(mm);
 
        precharge = mc.precharge;
        mc.precharge = 0;
@@ -5899,9 +5899,9 @@ static void mem_cgroup_move_charge(void)
        atomic_inc(&mc.from->moving_account);
        synchronize_rcu();
 retry:
-       if (unlikely(!down_read_trylock(&mc.mm->mmap_sem))) {
+       if (unlikely(!mmap_read_trylock(mc.mm))) {
                /*
-                * Someone who are holding the mmap_sem might be waiting in
+                * Someone who are holding the mmap_lock might be waiting in
                 * waitq. So we cancel all extra charges, wake up all waiters,
                 * and retry. Because we cancel precharges, we might not be able
                 * to move enough charges, but moving charge is a best-effort
@@ -5918,7 +5918,7 @@ retry:
        walk_page_range(mc.mm, 0, mc.mm->highest_vm_end, &charge_walk_ops,
                        NULL);
 
-       up_read(&mc.mm->mmap_sem);
+       mmap_read_unlock(mc.mm);
        atomic_dec(&mc.from->moving_account);
 }