--- 2.4.17rc2aa1/arch/arm/mm/mm-armv.c.~1~ Wed Jul 4 04:03:45 2001 +++ 2.4.17rc2aa1/arch/arm/mm/mm-armv.c Wed Dec 19 03:42:32 2001 @@ -123,6 +123,7 @@ no_pte: spin_unlock(&mm->page_table_lock); pmd_free(new_pmd); + check_pgt_cache(); free_pages((unsigned long)new_pgd, 2); return NULL; @@ -157,6 +158,7 @@ pmd_clear(pmd); pte_free(pte); pmd_free(pmd); + check_pgt_cache(); free: free_pages((unsigned long) pgd, 2); } --- 2.4.17rc2aa1/arch/arm/mm/mm-armo.c.~1~ Tue May 1 19:35:17 2001 +++ 2.4.17rc2aa1/arch/arm/mm/mm-armo.c Wed Dec 19 03:42:23 2001 @@ -104,6 +104,7 @@ no_pte: spin_unlock(&mm->page_table_lock); pmd_free(new_pmd); + check_pgt_cache(); free_pgd_slow(new_pgd); return NULL; --- 2.4.17rc2aa1/kernel/fork.c.~1~ Wed Dec 19 03:34:30 2001 +++ 2.4.17rc2aa1/kernel/fork.c Wed Dec 19 03:35:28 2001 @@ -250,6 +250,7 @@ { if (mm == &init_mm) BUG(); pgd_free(mm->pgd); + check_pgt_cache(); destroy_context(mm); free_mm(mm); } --- 2.4.17rc2aa1/mm/memory.c.~1~ Wed Dec 19 03:34:27 2001 +++ 2.4.17rc2aa1/mm/memory.c Wed Dec 19 03:36:06 2001 @@ -1390,6 +1390,7 @@ */ if (!pgd_none(*pgd)) { pmd_free(new); + check_pgt_cache(); goto out; } } @@ -1424,6 +1425,7 @@ */ if (!pmd_none(*pmd)) { pte_free(new); + check_pgt_cache(); goto out; } }