On November 21, 2014 2:51:33 AM EST, Jan Beulich <jbeul...@suse.com> wrote: >>>> On 20.11.14 at 20:51, <konrad.w...@oracle.com> wrote: >> @@ -669,7 +670,7 @@ static void hvm_dirq_assist(struct domain *d, >struct hvm_pirq_dpci *pirq_dpci) >> ASSERT(d->arch.hvm_domain.irq.dpci); >> >> spin_lock(&d->event_lock); >> - if ( pirq_dpci->state ) >> + if ( test_and_clear_bool(pirq_dpci->masked) ) >> { >> struct pirq *pirq = dpci_pirq(pirq_dpci); >> const struct dev_intx_gsi_link *digl; > >So this now guards solely against the timeout enforced EOI? Why do >you no longer need to guard against cancellation (i.e. why isn't this >looking at both ->state and ->masked)? >
The previous state check was superfluous as the dpci_softirq would check for the valid STATE_ before calling hvm_dirq_assist (and deal with cancellation). I actually had an cleanup patch that would have removed the 'if (pirq_dpci->state) ' and move the code for Xen 4.6. Anyhow waiting to see if Sander was able to test with this patch. >Jan _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel