Index: 20071119-ia64/xen/arch/ia64/xen/ivt.S
===================================================================
--- 20071119-ia64.orig/xen/arch/ia64/xen/ivt.S	2007-11-25 21:41:35.000000000 -0700
+++ 20071119-ia64/xen/arch/ia64/xen/ivt.S	2007-11-25 21:44:15.000000000 -0700
@@ -285,29 +285,11 @@
 	cmp.eq p8,p0=((VIRT_FRAME_TABLE_ADDR>>56)&0xff)-0x100,r22
 (p8)	br.cond.sptk frametable_miss ;;
 #endif
-	// If it is not a Xen address, handle it via page_fault.
-	// If it is not a Xen address, handle it via page_fault.
-	//    !( ((r22 == 0x18 || r22 == 0x1c) && rr[6] == XEN_EFI_RID) ||
-	//	 r22 == 0x1e )
-	// Note that rr[6] == XEN_EFI_RID implies rr[7] == XEN_EFI_RID
-	extr.u r22=r16,59,5
+	movl r26=alt_dtlb_miss_identity_map
+	movl r27=page_fault
 	;;
 	dep r20=0,r20,IA64_ITIR_KEY,IA64_ITIR_KEY_LEN	// clear the key
-	mov r23=6
-	;;
-	mov r23=rr[r23]
-	;;
-	mov r25=XEN_EFI_RID
-	cmp.eq p8,p0=0x18,r22		// 0xc...
-	;;
-	cmp.eq.or p8,p0=0x1c,r22	// 0xe...
-	;;
-	cmp.eq.and p8,p0=r25,r23	// rr[6] == XEN_EFI_RID
-	;;
-	cmp.eq.or p8,p0=0x1e,r22	// 0xf...
-	;;
-(p8)	br.cond.spnt alt_dtlb_miss_identity_map
-	br.cond.spnt page_fault
+	br.cond.spnt branch_on_xen_memory
 	;;
 alt_dtlb_miss_identity_map:
 	dep r21=-1,r21,IA64_PSR_ED_BIT,1
