Index: 2007-04-27/xen/arch/x86/x86_32/entry.S
===================================================================
--- 2007-04-27.orig/xen/arch/x86/x86_32/entry.S	2007-04-27 09:50:12.000000000 +0200
+++ 2007-04-27/xen/arch/x86/x86_32/entry.S	2007-04-27 09:57:47.000000000 +0200
@@ -387,21 +387,33 @@ ring1:  /* obtain ss/esp from oldss/olde
         movl %eax,UREGS_eip+4(%esp)
         ret
 .section __ex_table,"a"
-        .long  .Lft6,domain_crash_synchronous ,  .Lft7,domain_crash_synchronous
-        .long  .Lft8,domain_crash_synchronous ,  .Lft9,domain_crash_synchronous
-        .long .Lft10,domain_crash_synchronous , .Lft11,domain_crash_synchronous
-        .long .Lft12,domain_crash_synchronous , .Lft13,domain_crash_synchronous
-        .long .Lft14,domain_crash_synchronous , .Lft15,domain_crash_synchronous
-        .long .Lft16,domain_crash_synchronous , .Lft17,domain_crash_synchronous
-        .long .Lft18,domain_crash_synchronous , .Lft19,domain_crash_synchronous
-        .long .Lft20,domain_crash_synchronous , .Lft21,domain_crash_synchronous
-        .long .Lft22,domain_crash_synchronous , .Lft23,domain_crash_synchronous
-        .long .Lft24,domain_crash_synchronous , .Lft25,domain_crash_synchronous
+        .long  .Lft6,domain_crash_synchronous  ,  .Lft7,domain_crash_page_fault
+        .long  .Lft8,domain_crash_page_fault_4 ,  .Lft9,domain_crash_page_fault_8
+        .long .Lft10,domain_crash_page_fault_12, .Lft11,domain_crash_page_fault
+        .long .Lft12,domain_crash_page_fault_4 , .Lft13,domain_crash_synchronous
+        .long .Lft14,domain_crash_page_fault   , .Lft15,domain_crash_page_fault_4
+        .long .Lft16,domain_crash_page_fault_8 , .Lft17,domain_crash_page_fault
+        .long .Lft18,domain_crash_page_fault   , .Lft19,domain_crash_page_fault_4
+        .long .Lft20,domain_crash_page_fault_8 , .Lft21,domain_crash_page_fault_12
+        .long .Lft22,domain_crash_page_fault   , .Lft23,domain_crash_page_fault_4
+        .long .Lft24,domain_crash_page_fault_8 , .Lft25,domain_crash_page_fault_12
 .previous
 
+.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: 2007-04-27/xen/arch/x86/x86_64/entry.S
===================================================================
--- 2007-04-27.orig/xen/arch/x86/x86_64/entry.S	2007-04-27 09:31:40.000000000 +0200
+++ 2007-04-27/xen/arch/x86/x86_64/entry.S	2007-04-27 09:57:47.000000000 +0200
@@ -338,17 +338,30 @@ create_bounce_frame:
         movq  %rax,UREGS_rip+8(%rsp)
         ret
 .section __ex_table,"a"
-        .quad  .Lft2,domain_crash_synchronous ,  .Lft3,domain_crash_synchronous
-        .quad  .Lft4,domain_crash_synchronous ,  .Lft5,domain_crash_synchronous
-        .quad  .Lft6,domain_crash_synchronous ,  .Lft7,domain_crash_synchronous
-        .quad  .Lft8,domain_crash_synchronous ,  .Lft9,domain_crash_synchronous
-        .quad .Lft10,domain_crash_synchronous , .Lft11,domain_crash_synchronous
-        .quad .Lft12,domain_crash_synchronous , .Lft13,domain_crash_synchronous
+        .quad  .Lft2,domain_crash_page_fault_32,  .Lft3,domain_crash_page_fault_24
+        .quad  .Lft4,domain_crash_page_fault_8 ,  .Lft5,domain_crash_page_fault_16
+        .quad  .Lft6,domain_crash_page_fault   ,  .Lft7,domain_crash_page_fault
+        .quad  .Lft8,domain_crash_page_fault_24,  .Lft9,domain_crash_page_fault_16
+        .quad .Lft10,domain_crash_page_fault_8 , .Lft11,domain_crash_page_fault
+        .quad .Lft12,domain_crash_page_fault_8 , .Lft13,domain_crash_page_fault
 .previous
 
+.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_GUEST_REGS(%rax)