From: Don Slutz Date: Tue, 14 Apr 2015 13:03:27 +0000 (+0200) Subject: x86: set regs->entry_vector for early_page_fault X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~3434 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=50c9e20a9e63a308a36d9bd765ef3a6a6702da74;p=xen.git x86: set regs->entry_vector for early_page_fault This changes: (XEN) Early fatal page fault at e008:ffff82d080164252 (cr2=0000000000000000, ec=0000) (XEN) ----[ Xen-4.6-unstable x86_64 debug=y Not tainted ]---- (XEN) CPU: 0 (XEN) RIP: e008:[] arch_domain_create+0x3e/0x4ef ... (XEN) Xen call trace: (XEN) [] arch_domain_create+0x3e/0x4ef (XEN) [] domain_create+0x384/0x556 (XEN) [] scheduler_init+0x1c4/0x244 (XEN) [] __start_xen+0x1d0e/0x22a1 (XEN) [] __high_start+0x53/0x58 (XEN) (XEN) (XEN) **************************************** (XEN) Panic on CPU 0: (XEN) FATAL TRAP: vector = 0 (divide error) (XEN) [error_code=0000] , IN INTERRUPT CONTEXT (XEN) **************************************** ... to: (XEN) Early fatal page fault at e008:ffff82d080164252 (cr2=0000000000000000, ec=0000) (XEN) ----[ Xen-4.6-unstable x86_64 debug=y Not tainted ]---- (XEN) CPU: 0 (XEN) RIP: e008:[] arch_domain_create+0x3e/0x4ef ... (XEN) Xen call trace: (XEN) [] arch_domain_create+0x3e/0x4ef (XEN) [] domain_create+0x384/0x556 (XEN) [] scheduler_init+0x1c4/0x244 (XEN) [] __start_xen+0x1d0e/0x22a1 (XEN) [] __high_start+0x53/0x58 (XEN) (XEN) Faulting linear address: 0000000000000000 (XEN) Pagetable walk from 0000000000000000: (XEN) L4[0x000] = 000000083a1a6063 ffffffffffffffff (XEN) L3[0x000] = 000000083a1a5063 ffffffffffffffff (XEN) L2[0x000] = 000000083a1a4063 ffffffffffffffff (XEN) L1[0x000] = 0000000000000000 ffffffffffffffff (XEN) (XEN) **************************************** (XEN) Panic on CPU 0: (XEN) FATAL TRAP: vector = 14 (page fault) (XEN) [error_code=0000] , IN INTERRUPT CONTEXT (XEN) **************************************** ... Signed-off-by: Don Slutz Reviewed-by: Andrew Cooper --- diff --git a/xen/arch/x86/x86_64/entry.S b/xen/arch/x86/x86_64/entry.S index 2d25d57426..7e63e64aca 100644 --- a/xen/arch/x86/x86_64/entry.S +++ b/xen/arch/x86/x86_64/entry.S @@ -626,6 +626,7 @@ ENTRY(double_fault) .pushsection .init.text, "ax", @progbits ENTRY(early_page_fault) + movl $TRAP_page_fault,4(%rsp) SAVE_ALL movq %rsp,%rdi call do_early_page_fault