From: Ingo Molnar <mingo@elte.hu>




 arch/i386/mm/pgtable.c |    3 +++
 1 files changed, 3 insertions(+)

diff -puN arch/i386/mm/pgtable.c~4g4g-pmd-fix arch/i386/mm/pgtable.c
--- 25/arch/i386/mm/pgtable.c~4g4g-pmd-fix	2003-08-03 02:46:30.000000000 -0700
+++ 25-akpm/arch/i386/mm/pgtable.c	2003-08-03 02:46:30.000000000 -0700
@@ -178,6 +178,9 @@ void pgd_ctor(void *__pgd, kmem_cache_t 
 	unsigned long flags;
 	pgd_t *pgd0 = __pgd;
 
+	if (PTRS_PER_PMD > 1)
+		return;
+
 	spin_lock_irqsave(&pgd_lock, flags);
 	list_add(&virt_to_page(pgd0)->lru, &pgd_list);
 	spin_unlock_irqrestore(&pgd_lock, flags);

_