Move som e instructions to be able to determine the region earlier. Signed-off-by: Christoph Lameter Index: linux-2.6.18-mm3/arch/ia64/kernel/ivt.S =================================================================== --- linux-2.6.18-mm3.orig/arch/ia64/kernel/ivt.S 2006-10-08 18:30:13.295347176 -0700 +++ linux-2.6.18-mm3/arch/ia64/kernel/ivt.S 2006-10-09 13:40:26.320584078 -0700 @@ -429,11 +429,11 @@ ENTRY(nested_dtlb_miss) mov r19=IA64_KR(PT_BASE) // get the page table base address shl r21=r16,3 // shift bit 60 into sign bit mov r18=cr.itir - ;; shr.u r17=r16,61 // get the region number into r17 - extr.u r18=r18,2,6 // get the faulting page size ;; + extr.u r18=r18,2,6 // get the faulting page size cmp.eq p6,p7=5,r17 // is faulting address in region 5? + ;; add r22=-PAGE_SHIFT,r18 // adjustment for hugetlb address add r18=PGDIR_SHIFT-PAGE_SHIFT,r18 ;;