Index: xen-4.1.2-testing/xen/arch/x86/x86_32/entry.S
===================================================================
--- xen-4.1.2-testing.orig/xen/arch/x86/x86_32/entry.S
+++ xen-4.1.2-testing/xen/arch/x86/x86_32/entry.S
@@ -390,29 +390,41 @@ UNLIKELY_END(bounce_vm86_3)
         movl %eax,UREGS_eip+4(%esp)
         ret
         _ASM_EXTABLE(.Lft6,  domain_crash_synchronous)
-        _ASM_EXTABLE(.Lft7,  domain_crash_synchronous)
-        _ASM_EXTABLE(.Lft8,  domain_crash_synchronous)
-        _ASM_EXTABLE(.Lft9,  domain_crash_synchronous)
-        _ASM_EXTABLE(.Lft10, domain_crash_synchronous)
-        _ASM_EXTABLE(.Lft11, domain_crash_synchronous)
-        _ASM_EXTABLE(.Lft12, domain_crash_synchronous)
+        _ASM_EXTABLE(.Lft7,  domain_crash_page_fault)
+        _ASM_EXTABLE(.Lft8,  domain_crash_page_fault_4)
+        _ASM_EXTABLE(.Lft9,  domain_crash_page_fault_8)
+        _ASM_EXTABLE(.Lft10, domain_crash_page_fault_12)
+        _ASM_EXTABLE(.Lft11, domain_crash_page_fault)
+        _ASM_EXTABLE(.Lft12, domain_crash_page_fault_4)
         _ASM_EXTABLE(.Lft13, domain_crash_synchronous)
-        _ASM_EXTABLE(.Lft14, domain_crash_synchronous)
-        _ASM_EXTABLE(.Lft15, domain_crash_synchronous)
-        _ASM_EXTABLE(.Lft16, domain_crash_synchronous)
-        _ASM_EXTABLE(.Lft17, domain_crash_synchronous)
-        _ASM_EXTABLE(.Lft18, domain_crash_synchronous)
-        _ASM_EXTABLE(.Lft19, domain_crash_synchronous)
-        _ASM_EXTABLE(.Lft20, domain_crash_synchronous)
-        _ASM_EXTABLE(.Lft21, domain_crash_synchronous)
-        _ASM_EXTABLE(.Lft22, domain_crash_synchronous)
-        _ASM_EXTABLE(.Lft23, domain_crash_synchronous)
-        _ASM_EXTABLE(.Lft24, domain_crash_synchronous)
-        _ASM_EXTABLE(.Lft25, domain_crash_synchronous)
+        _ASM_EXTABLE(.Lft14, domain_crash_page_fault)
+        _ASM_EXTABLE(.Lft15, domain_crash_page_fault_4)
+        _ASM_EXTABLE(.Lft16, domain_crash_page_fault_8)
+        _ASM_EXTABLE(.Lft17, domain_crash_page_fault)
+        _ASM_EXTABLE(.Lft18, domain_crash_page_fault)
+        _ASM_EXTABLE(.Lft19, domain_crash_page_fault_4)
+        _ASM_EXTABLE(.Lft20, domain_crash_page_fault_8)
+        _ASM_EXTABLE(.Lft21, domain_crash_page_fault_12)
+        _ASM_EXTABLE(.Lft22, domain_crash_page_fault)
+        _ASM_EXTABLE(.Lft23, domain_crash_page_fault_4)
+        _ASM_EXTABLE(.Lft24, domain_crash_page_fault_8)
+        _ASM_EXTABLE(.Lft25, domain_crash_page_fault_12)
 
+.section .rodata,"a"
 domain_crash_synchronous_string:
         .asciz "domain_crash_sync called from entry.S (%lx)\n"
+.previous
 
+domain_crash_page_fault_12:
+        addl  $4,%esi
+domain_crash_page_fault_8:
+        addl  $4,%esi
+domain_crash_page_fault_4:
+        addl  $4,%esi
+domain_crash_page_fault:
+        pushl %esi
+        call  show_page_walk
+        addl  $4,%esp
 domain_crash_synchronous:
         pushl $domain_crash_synchronous_string
         call  printk
Index: xen-4.1.2-testing/xen/arch/x86/x86_64/entry.S
===================================================================
--- xen-4.1.2-testing.orig/xen/arch/x86/x86_64/entry.S
+++ xen-4.1.2-testing/xen/arch/x86/x86_64/entry.S
@@ -419,22 +419,35 @@ UNLIKELY_END(bounce_failsafe)
         jz    domain_crash_synchronous
         movq  %rax,UREGS_rip+8(%rsp)
         ret
-        _ASM_EXTABLE(.Lft2,  domain_crash_synchronous)
-        _ASM_EXTABLE(.Lft3,  domain_crash_synchronous)
-        _ASM_EXTABLE(.Lft4,  domain_crash_synchronous)
-        _ASM_EXTABLE(.Lft5,  domain_crash_synchronous)
-        _ASM_EXTABLE(.Lft6,  domain_crash_synchronous)
-        _ASM_EXTABLE(.Lft7,  domain_crash_synchronous)
-        _ASM_EXTABLE(.Lft8,  domain_crash_synchronous)
-        _ASM_EXTABLE(.Lft9,  domain_crash_synchronous)
-        _ASM_EXTABLE(.Lft10, domain_crash_synchronous)
-        _ASM_EXTABLE(.Lft11, domain_crash_synchronous)
-        _ASM_EXTABLE(.Lft12, domain_crash_synchronous)
-        _ASM_EXTABLE(.Lft13, domain_crash_synchronous)
+        _ASM_EXTABLE(.Lft2,  domain_crash_page_fault_32)
+        _ASM_EXTABLE(.Lft3,  domain_crash_page_fault_24)
+        _ASM_EXTABLE(.Lft4,  domain_crash_page_fault_8)
+        _ASM_EXTABLE(.Lft5,  domain_crash_page_fault_16)
+        _ASM_EXTABLE(.Lft6,  domain_crash_page_fault)
+        _ASM_EXTABLE(.Lft7,  domain_crash_page_fault)
+        _ASM_EXTABLE(.Lft8,  domain_crash_page_fault_24)
+        _ASM_EXTABLE(.Lft9,  domain_crash_page_fault_16)
+        _ASM_EXTABLE(.Lft10, domain_crash_page_fault_8)
+        _ASM_EXTABLE(.Lft11, domain_crash_page_fault)
+        _ASM_EXTABLE(.Lft12, domain_crash_page_fault_8)
+        _ASM_EXTABLE(.Lft13, domain_crash_page_fault)
 
+.section .rodata,"a"
 domain_crash_synchronous_string:
         .asciz "domain_crash_sync called from entry.S\n"
+.previous
 
+domain_crash_page_fault_32:
+        addq  $8,%rsi
+domain_crash_page_fault_24:
+        addq  $8,%rsi
+domain_crash_page_fault_16:
+        addq  $8,%rsi
+domain_crash_page_fault_8:
+        addq  $8,%rsi
+domain_crash_page_fault:
+        movq  %rsi,%rdi
+        call  show_page_walk
 ENTRY(domain_crash_synchronous)
         # Get out of the guest-save area of the stack.
         GET_CPUINFO_FIELD(CPUINFO_guest_cpu_user_regs,%rax)
