xen/x86-extra-trap-info.patch

117 lines
5.1 KiB
Diff

Index: xen-4.1.0-testing/xen/arch/x86/x86_32/entry.S
===================================================================
--- xen-4.1.0-testing.orig/xen/arch/x86/x86_32/entry.S
+++ xen-4.1.0-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.0-testing/xen/arch/x86/x86_64/entry.S
===================================================================
--- xen-4.1.0-testing.orig/xen/arch/x86/x86_64/entry.S
+++ xen-4.1.0-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)