When entering the hypervisor via the double fault handler resetting xen_cr3 was missing. This led to switching to pv_cr3 when returning from the next following interrupt. So repair this in order to allow interrupt handling to work even after a double fault.
Signed-off-by: Juergen Gross <jgr...@suse.com> --- xen/arch/x86/x86_64/entry.S | 1 + 1 file changed, 1 insertion(+) diff --git a/xen/arch/x86/x86_64/entry.S b/xen/arch/x86/x86_64/entry.S index 45d9842d09..25427b0cec 100644 --- a/xen/arch/x86/x86_64/entry.S +++ b/xen/arch/x86/x86_64/entry.S @@ -773,6 +773,7 @@ ENTRY(double_fault) neg %rbx .Ldblf_cr3_load: mov %rbx, %cr3 + movq $0, STACK_CPUINFO_FIELD(xen_cr3)(%r14) .Ldblf_cr3_okay: movq %rsp,%rdi -- 2.13.6 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel