From: Ingo Molnar 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); _