aboutsummaryrefslogtreecommitdiffstats
path: root/xenolinux-2.4.22-sparse/mm/memory.c
diff options
context:
space:
mode:
authoriap10@labyrinth.cl.cam.ac.uk <iap10@labyrinth.cl.cam.ac.uk>2003-12-19 14:38:15 +0000
committeriap10@labyrinth.cl.cam.ac.uk <iap10@labyrinth.cl.cam.ac.uk>2003-12-19 14:38:15 +0000
commit24e81789606925507a369a624941c7bbab793735 (patch)
tree4f9b3c3bcafc3357a3ec41fd071742e69bceb1b6 /xenolinux-2.4.22-sparse/mm/memory.c
parent49836d9d4f67e92796cf8d68ad4361b448bd7d9d (diff)
parent8708081a01a064f8356f580445cc57f6aa2b9648 (diff)
downloadxen-24e81789606925507a369a624941c7bbab793735.tar.gz
xen-24e81789606925507a369a624941c7bbab793735.tar.bz2
xen-24e81789606925507a369a624941c7bbab793735.zip
bitkeeper revision 1.651 (3fe30d57DatlAZVUHwbVCkF4_TelxA)
Merge labyrinth.cl.cam.ac.uk:/usr/groups/xeno/BK/xeno.bk into labyrinth.cl.cam.ac.uk:/auto/anfs/scratch/labyrinth/iap10/xeno-clone/xeno.bk
Diffstat (limited to 'xenolinux-2.4.22-sparse/mm/memory.c')
-rw-r--r--xenolinux-2.4.22-sparse/mm/memory.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/xenolinux-2.4.22-sparse/mm/memory.c b/xenolinux-2.4.22-sparse/mm/memory.c
index 0fdc801c0b..dc09253985 100644
--- a/xenolinux-2.4.22-sparse/mm/memory.c
+++ b/xenolinux-2.4.22-sparse/mm/memory.c
@@ -1326,7 +1326,8 @@ static int do_no_page(struct mm_struct * mm, struct vm_area_struct * vma,
*/
/* Only go through if we didn't race with anybody else... */
if (pte_none(*page_table)) {
- ++mm->rss;
+ if (!PageReserved(new_page))
+ ++mm->rss;
flush_page_to_ram(new_page);
flush_icache_page(vma, new_page);
entry = mk_pte(new_page, vma->vm_page_prot);
@@ -1463,6 +1464,7 @@ pmd_t *__pmd_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address)
*/
if (!pgd_none(*pgd)) {
pmd_free(new);
+ check_pgt_cache();
goto out;
}
}
@@ -1498,6 +1500,7 @@ pte_t *pte_alloc(struct mm_struct *mm, pmd_t *pmd, unsigned long address)
*/
if (!pmd_none(*pmd)) {
pte_free(new);
+ check_pgt_cache();
goto out;
}
}