- Upstream or pending upstream patches from Jan 25587-fix-off-by-one-parsing-error.patch 25616-x86-MCi_CTL-default.patch 25617-vtd-qinval-addr.patch 25688-x86-nr_irqs_gsi.patch - bnc#773393 - VUL-0: CVE-2012-3433: xen: HVM guest destroy p2m teardown host DoS vulnerability CVE-2012-3433-xsa11.patch - bnc#773401 - VUL-1: CVE-2012-3432: xen: HVM guest user mode MMIO emulation DoS 25682-x86-inconsistent-io-state.patch - bnc#762484 - VUL-1: CVE-2012-2625: xen: pv bootloader doesn't check the size of the bzip2 or lzma compressed kernel, leading to denial of service 25589-pygrub-size-limits.patch - Make it build with latest TeXLive 2012 with new package layout OBS-URL: https://build.opensuse.org/package/show/Virtualization/xen?expand=0&rev=196
113 lines
4.8 KiB
Diff
113 lines
4.8 KiB
Diff
--- a/xen/arch/x86/x86_32/entry.S
|
|
+++ b/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
|
|
--- a/xen/arch/x86/x86_64/entry.S
|
|
+++ b/xen/arch/x86/x86_64/entry.S
|
|
@@ -430,22 +430,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)
|