[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v3] xpti: fix bug in double fault handling
On 23/04/18 14:59, Juergen Gross wrote: > 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 exception, so repair this in order to allow > exception handling to work even after a double fault. > > Signed-off-by: Juergen Gross <jgross@xxxxxxxx> Reviewed-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Tested-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> > --- > xen/arch/x86/x86_64/entry.S | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/xen/arch/x86/x86_64/entry.S b/xen/arch/x86/x86_64/entry.S > index 45d9842d09..1cd7d93892 100644 > --- a/xen/arch/x86/x86_64/entry.S > +++ b/xen/arch/x86/x86_64/entry.S > @@ -767,12 +767,14 @@ ENTRY(double_fault) > /* WARNING! `ret`, `call *`, `jmp *` not safe before this point. */ > > mov STACK_CPUINFO_FIELD(xen_cr3)(%r14), %rbx > - test %rbx, %rbx > + neg %rbx > jz .Ldblf_cr3_okay > jns .Ldblf_cr3_load > + mov %rbx, STACK_CPUINFO_FIELD(xen_cr3)(%r14) > neg %rbx > .Ldblf_cr3_load: > mov %rbx, %cr3 > + movq $0, STACK_CPUINFO_FIELD(xen_cr3)(%r14) > .Ldblf_cr3_okay: > > movq %rsp,%rdi _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |