On Tue, Sep 21, 2010 at 01:56:50PM +0200, Avi Kivity wrote:
>  On 09/20/2010 07:30 PM, Marcelo Tosatti wrote:
> >>   static void __vmx_complete_interrupts(struct vcpu_vmx *vmx,
> >>                            u32 idt_vectoring_info,
> >>                            int instr_len_field,
> >>  @@ -3864,9 +3814,6 @@ static void __vmx_complete_interrupts(struct 
> >> vcpu_vmx *vmx,
> >>    int type;
> >>    bool idtv_info_valid;
> >>
> >>  - if (vmx->rmode.irq.pending)
> >>  -         fixup_rmode_irq(vmx,&idt_vectoring_info);
> >>  -
> >
> >Don't you have to undo kvm_inject_realmode_interrupt if injection fails?
> >
> >
> 
> Injection cannot fail (at least, in the same sense as the vmx
> injections).  It's actually not about failures, it's about guest
> entry being cancelled due to a signal or some KVM_REQ that needs
> attention.  For vmx style injections, we need to undo the injection
> to keep things in a consistent state.  To realmode emulated
> injection, everything is in a consistent state already, so no need
> to undo anything (it's also impossible, since we overwrote memory on
> the stack).

Aren't you going to push EFLAGS,CS,EIP on the stack twice if that
occurs?

Yes, can't undo it...
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to