From: Andrew Morton Cc: Balbir Singh Cc: Signed-off-by: Andrew Morton --- mm/memory.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff -puN mm/memory.c~memory-controller-memory-accounting-v7-fix mm/memory.c --- a/mm/memory.c~memory-controller-memory-accounting-v7-fix +++ a/mm/memory.c @@ -1135,7 +1135,7 @@ static int insert_page(struct mm_struct { int retval; pte_t *pte; - spinlock_t *ptl; + spinlock_t *ptl; retval = mem_cgroup_charge(page, mm); if (retval) @@ -1160,6 +1160,7 @@ static int insert_page(struct mm_struct set_pte_at(mm, addr, pte, mk_pte(page, prot)); retval = 0; + pte_unmap_unlock(pte, ptl); return retval; out_unlock: pte_unmap_unlock(pte, ptl); @@ -2184,8 +2185,8 @@ static int do_anonymous_page(struct mm_s if (!page) goto oom; - if (mem_cgroup_charge(page, mm)) - goto oom_free_page; + if (mem_cgroup_charge(page, mm)) + goto oom_free_page; entry = mk_pte(page, vma->vm_page_prot); entry = maybe_mkwrite(pte_mkdirty(entry), vma); _