Index: xen-4.1.1-testing/xen/arch/x86/x86_32/entry.S =================================================================== --- xen-4.1.1-testing.orig/xen/arch/x86/x86_32/entry.S +++ xen-4.1.1-testing/xen/arch/x86/x86_32/entry.S @@ -389,29 +389,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.1-testing/xen/arch/x86/x86_64/entry.S =================================================================== --- xen-4.1.1-testing.orig/xen/arch/x86/x86_64/entry.S +++ xen-4.1.1-testing/xen/arch/x86/x86_64/entry.S @@ -416,22 +416,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)