>>> On 21.11.14 at 12:50, <konrad.w...@oracle.com> wrote: > 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 thought so first too, but then how is the guarding against cancellation working now? Jan _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel