Index: 20071119-ia64/xen/arch/ia64/xen/ivt.S
===================================================================
--- 20071119-ia64.orig/xen/arch/ia64/xen/ivt.S	2007-11-25 22:53:36.000000000 -0700
+++ 20071119-ia64/xen/arch/ia64/xen/ivt.S	2007-11-25 22:54:50.000000000 -0700
@@ -237,11 +242,15 @@
 						//   PTE control bits
 	tbit.nz p9,p0=r20,IA64_ISR_NA_BIT	// is non-access bit on?
 	;;
+	movl r20=(PAGE_SHIFT << 2)
+	;;
+(p6)	movl r20=(IA64_GRANULE_SHIFT << 2)
+(p7)	movl r20=(IA64_GRANULE_SHIFT << 2)
+	;;
 	cmp.ne p8,p0=r0,r23
 (p9)	cmp.eq.or.andcm p6,p7=IA64_ISR_CODE_LFETCH,r22	// check isr.code field
 (p8)	br.cond.spnt page_fault
 	;;
-	mov r20=cr.itir
 #ifdef CONFIG_VIRTUAL_FRAME_TABLE
 	shr r22=r16,56	 	// Test for the address of virtual frame_table
 	;;
@@ -255,7 +264,6 @@
 	// Note that rr[6] == XEN_EFI_RID implies rr[7] == XEN_EFI_RID
 	extr.u r22=r16,59,5
 	;;
-	dep r20=0,r20,IA64_ITIR_KEY,IA64_ITIR_KEY_LEN	// clear the key
 	mov r23=6
 	;;
 	mov r23=rr[r23]
