From: Zwane Mwaikambo I spent a bit of time on this today, and the problem appears to be that we haven't done mem_map or zone initialisation, so mem_map[pfn]->flags is also wrong (e.g. PG_highmem tests). This is still triple faulting on 2.6.5-rc3-mm4 on my boxes. CONFIG_HIGHMEM and any setup without 4MB pages should do it. The following patch got an approving nod from Bill. --- 25-akpm/arch/i386/mm/init.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) diff -puN arch/i386/mm/init.c~4g4g-page_address-fix arch/i386/mm/init.c --- 25/arch/i386/mm/init.c~4g4g-page_address-fix 2004-04-04 01:15:35.937717280 -0800 +++ 25-akpm/arch/i386/mm/init.c 2004-04-04 01:15:35.941716672 -0800 @@ -206,7 +206,7 @@ void setup_identity_mappings(pgd_t *pgd_ if (!pmd_present(*pmd)) pte_base = (pte_t *) alloc_bootmem_low_pages(PAGE_SIZE); else - pte_base = (pte_t *) page_address(pmd_page(*pmd)); + pte_base = (pte_t *) pmd_page_kernel(*pmd); pte = pte_base; for (k = 0; k < PTRS_PER_PTE; pte++, k++) { vaddr = i*PGDIR_SIZE + j*PMD_SIZE + k*PAGE_SIZE; _