Kevin, thanks for your reply.

On Fri, Apr 21, 2017 at 06:56:39PM +0800, Tian, Kevin wrote:
>> From: Gao, Chao
>> Sent: Friday, April 7, 2017 11:24 AM
>> 
>> When injecting periodic timer interrupt in vmx_intr_assist(), multiple read
>> operation is operated during one event delivery and incur to inconsistent
>
>operation is operated -> operations are done
>

will fix.

>> @@ -487,13 +494,14 @@ int vpic_ack_pending_irq(struct vcpu *v)
>>      struct hvm_hw_vpic *vpic = &v->domain->arch.hvm_domain.vpic[0];
>> 
>>      ASSERT(has_vpic(v->domain));
>> +    ASSERT(vpic_is_locked(vpic));
>> 
>>      TRACE_2D(TRC_HVM_EMUL_PIC_PEND_IRQ_CALL,
>> vlapic_accept_pic_intr(v),
>>               vpic->int_output);
>>      if ( !vlapic_accept_pic_intr(v) || !vpic->int_output )
>>          return -1;
>> 
>> -    irq = vpic_intack(vpic);
>> +    irq = vpic_intack_locked(vpic);
>>      if ( irq == -1 )
>>          return -1;
>> 
>
>hvm_vcpu_ack_pending_irq is also invoked in nvmx_intr_intercept,
>where you also need surround it with spin_lock/unlock otherwise
>above ASSERT will be triggered.
>

nvmx_intr_intercept(), currently, is only called from region
protected by irq_lock. So i think the ASSERT won't be triggered.
But I also need add an ASSERT in nvmx_intr_intercept().

Thanks
Chao

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

Reply via email to