[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH-for-4.11] xpti: fix bug in double fault handling



>>> On 23.04.18 at 13:37, <jgross@xxxxxxxx> 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 interrupt, e.g. after re-enabling interrupts
> in machine_restart().

Pointing at bad behavior to justify a change is not very helpful, I think.
Andrew's argument of exception handling wanting to continue to work
even after a #DF is a better one imo.

> --- a/tools/firmware/xen-dir/shim.config
> +++ b/tools/firmware/xen-dir/shim.config
> @@ -1,6 +1,6 @@
>  #
>  # Automatically generated file; DO NOT EDIT.
> -# Xen/x86 4.11-unstable Configuration
> +# Xen/x86 4.11-rc Configuration
>  #
>  CONFIG_X86_64=y
>  CONFIG_X86=y

Stray change?

> --- a/xen/arch/x86/x86_64/entry.S
> +++ b/xen/arch/x86/x86_64/entry.S
> @@ -772,6 +772,7 @@ ENTRY(double_fault)
>          jns   .Ldblf_cr3_load
>          neg   %rbx
>  .Ldblf_cr3_load:
> +        movq $0, STACK_CPUINFO_FIELD(xen_cr3)(%r14)
>          mov   %rbx, %cr3
>  .Ldblf_cr3_okay:

Just like for the other code paths this write should be after the CR3 load,
or else NMI or #MC occurring between the two would fail to update CR3.

Jan



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.