vserver 2.0 rc7
[linux-2.6.git] / arch / sh64 / mm / hugetlbpage.c
index f17d9d4..bcad2ae 100644 (file)
@@ -62,7 +62,8 @@ static void set_huge_pte(struct mm_struct *mm, struct vm_area_struct *vma,
        unsigned long i;
        pte_t entry;
 
-       vx_rsspages_add(mm, HPAGE_SIZE / PAGE_SIZE);
+       add_mm_counter(mm, rss, HPAGE_SIZE / PAGE_SIZE);
+
        if (write_access)
                entry = pte_mkwrite(pte_mkdirty(mk_pte(page,
                                                       vma->vm_page_prot)));
@@ -114,7 +115,7 @@ int copy_hugetlb_page_range(struct mm_struct *dst, struct mm_struct *src,
                        pte_val(entry) += PAGE_SIZE;
                        dst_pte++;
                }
-               vx_rsspages_add(dst, HPAGE_SIZE / PAGE_SIZE);
+               add_mm_counter(dst, rss, HPAGE_SIZE / PAGE_SIZE);
                addr += HPAGE_SIZE;
        }
        return 0;
@@ -201,11 +202,11 @@ void unmap_hugepage_range(struct vm_area_struct *vma,
                page = pte_page(*pte);
                put_page(page);
                for (i = 0; i < (1 << HUGETLB_PAGE_ORDER); i++) {
-                       pte_clear(pte);
+                       pte_clear(mm, address+(i*PAGE_SIZE), pte);
                        pte++;
                }
        }
-       vx_rsspages_sub(mm, (end - start) >> PAGE_SHIFT);
+       add_mm_counter(mm, rss, -((end - start) >> PAGE_SHIFT));
        flush_tlb_range(vma, start, end);
 }