|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH V3] vmx/nmi: Do not use self_nmi() in VMEXIT handler
>>> On 28.02.13 at 14:00, Tim Deegan <tim@xxxxxxx> wrote:
> vmx: handle NMIs before re-enabling interrupts.
>
> Also, switch to calling do_nmi() and explicitly re-enabling NMIs
> rather than raising a fake NMI and relying on the NMI processing to
> IRET, since that handling code is likely to change a fair amount in
> future.
>
> Signed-off-by: Tim Deegan <tim@xxxxxxx>
Sorry, my Acked-by just sent requires one change to be done first:
> --- a/xen/arch/x86/hvm/vmx/vmx.c
> +++ b/xen/arch/x86/hvm/vmx/vmx.c
> @@ -2313,6 +2313,13 @@ void vmx_vmexit_handler(struct cpu_user_regs *regs)
> vector = intr_info & INTR_INFO_VECTOR_MASK;
> if ( vector == TRAP_machine_check )
> do_machine_check(regs);
> + if ( vector == TRAP_machine_check
This almost certainly needs to be TRAP_nmi.
Jan
> + && ((intr_info & INTR_INFO_INTR_TYPE_MASK) ==
> + (X86_EVENTTYPE_NMI << 8)) )
> + {
> + do_nmi(regs);
> + enable_nmis();
> + }
> break;
> case EXIT_REASON_MCE_DURING_VMENTRY:
> do_machine_check(regs);
> @@ -2486,7 +2493,7 @@ void vmx_vmexit_handler(struct cpu_user_regs *regs)
> (X86_EVENTTYPE_NMI << 8) )
> goto exit_and_crash;
> HVMTRACE_0D(NMI);
> - self_nmi(); /* Real NMI, vector 2: normal processing. */
> + /* Already handled above. */
> break;
> case TRAP_machine_check:
> HVMTRACE_0D(MCE);
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |