diff -ur /md0/kernels/2.4/v2.4.8-ac9/mm/memory.c vm-v2.4.8-ac9/mm/memory.c
--- /md0/kernels/2.4/v2.4.8-ac9/mm/memory.c	Thu Aug 23 13:48:25 2001
+++ vm-v2.4.8-ac9/mm/memory.c	Thu Aug 23 14:45:46 2001
@@ -129,11 +129,13 @@
 {
 	pgd_t * page_dir = mm->pgd;
 
+	spin_lock(&mm->page_table_lock);
 	page_dir += first;
 	do {
 		free_one_pgd(page_dir);
 		page_dir++;
 	} while (--nr);
+	spin_unlock(&mm->page_table_lock);
 
 	/* keep the page table cache within bounds */
 	check_pgt_cache();
