Index: 20071119-ia64/xen/arch/ia64/xen/ivt.S
===================================================================
--- 20071119-ia64.orig/xen/arch/ia64/xen/ivt.S	2007-11-25 21:42:41.000000000 -0700
+++ 20071119-ia64/xen/arch/ia64/xen/ivt.S	2007-11-25 21:44:06.000000000 -0700
@@ -189,36 +189,10 @@
 	DBG_FAULT(2)
 	mov r16=cr.ifa			// get virtual address
 	mov r31=pr
+	movl r26=late_alt_dtlb_miss
+	movl r27=fast_tlb_miss_reflect
 	;;
-	extr.u r17=r16,59,5
-	;;
-	/* If address belongs to VMM, go to alt tlb handler */
-	cmp.eq p6,p0=0x1e,r17
-(p6)	br.cond.spnt	late_alt_dtlb_miss
-
-	// If it is an EFI address then must have XEN_EFI_RID set
-	// And if that is true, go to alt tlb handler
-	// (r17 == 0x18 && rr[6] == XEN_EFI_RID) ||
-	// (r17 == 0x1c && rr[7] == XEN_EFI_RID)
-	mov r23=6
-	mov r24=7
-	;;
-	mov r23=rr[r23]
-	mov r24=rr[r24]
-	;;
-	mov r25=XEN_EFI_RID
-	cmp.eq p8,p0=0x18,r17		// 0xc...
-	cmp.eq p9,p0=0x1c,r17		// 0xe...
-	;;
-	cmp.eq.and p8,p0=r25,r23	// rr[6] == XEN_EFI_RID
-	cmp.eq.and p9,p0=r25,r24	// rr[7] == XEN_EFI_RID
-	;;
-(p8)	br.cond.spnt late_alt_dtlb_miss
-(p9)	br.cond.spnt late_alt_dtlb_miss
-	;;
-
-	br.cond.sptk fast_tlb_miss_reflect
-	;;
+	br.cond.spnt branch_on_xen_memory
 END(dtlb_miss)
 
 	.org ia64_ivt+0x0c00
