
From: Zwane Mwaikambo <zwane@linuxpower.ca>

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;

_
