Index: linux-2.6.18-mm3/arch/ia64/kernel/ivt.S =================================================================== --- linux-2.6.18-mm3.orig/arch/ia64/kernel/ivt.S 2006-10-09 13:44:13.213823817 -0700 +++ linux-2.6.18-mm3/arch/ia64/kernel/ivt.S 2006-10-09 14:04:33.580847532 -0700 @@ -433,9 +433,11 @@ ENTRY(nested_dtlb_miss) ;; extr.u r18=r18,2,6 // get the faulting page size cmp.eq p6,p7=5,r17 // is faulting address in region 5? + cmp.eq p10,p0=4,r17 // Region 4 is now also kernel ;; add r22=-PAGE_SHIFT,r18 // adjustment for hugetlb address add r18=PGDIR_SHIFT-PAGE_SHIFT+3,r18 +(p10) cmp.eq p6,p7=4,r17 // Fix up other flags ;; shr.u r22=r16,r22 shr.u r18=r21,r18 @@ -443,6 +445,8 @@ ENTRY(nested_dtlb_miss) srlz.d LOAD_PHYSICAL(p6, r19, swapper_pg_dir) // region 5 is rooted at swapper_pg_dir + ;; + LOAD_PHYSICAL(p10, r19, memmap_pg_dir) .pred.rel "mutex", p6, p7 (p6) shr.u r21=r21,PGDIR_SHIFT+PAGE_SHIFT