[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH XEN] x86/pt: add a MSI unmask flag to XEN_DOMCTL_bind_pt_irq
On Thu, Aug 24, 2017 at 04:17:32AM -0600, Jan Beulich wrote: >>>> On 24.08.17 at 12:12, <roger.pau@xxxxxxxxxx> wrote: >> On Thu, Aug 24, 2017 at 04:07:40AM -0600, Jan Beulich wrote: >>> >>> On 24.08.17 at 11:47, <roger.pau@xxxxxxxxxx> wrote: >>> > @@ -438,6 +439,22 @@ int pt_irq_create_bind( >>> > pi_update_irte(vcpu ? &vcpu->arch.hvm_vmx.pi_desc : NULL, >>> > info, pirq_dpci->gmsi.gvec); >>> > >>> > + if ( pt_irq_bind->u.msi.gflags & VMSI_UNMASKED ) >>> > + { >>> > + struct irq_desc *desc = irq_to_desc(info->arch.irq); >>> > + unsigned long flags; >>> > + >>> > + if ( !desc ) >>> > + { >>> > + pt_irq_destroy_bind(d, pt_irq_bind); >>> > + return -EINVAL; >>> > + } >>> > + >>> > + spin_lock_irqsave(&desc->lock, flags); >>> > + guest_mask_msi_irq(desc, false); >>> > + spin_unlock_irqrestore(&desc->lock, flags); >>> > + } >>> > + >>> > break; >>> > } >>> >>> I think you would better use pirq_spin_lock_irq_desc() here. And >>> wouldn't the addition better be moved up a little (perhaps right >>> after the dropping of the domain's event lock)? >> >> Shouldn't the unmask happen after the posted interrupt is setup? Or it >> doesn't really matter? >> >> I though it was safer to unmask once the bind process was finished. > >Yeah, I'm not entirely certain either, hence I've put it as a question. >Kevin, Chao? > Hi, Jan and Roger. pi_update_irte() right above the piece of code is to set IRTE properly according to the request. Unmasking the msi without updating IRTE, I think may leads to inject an interrupt whose vector or destination is out of date. Thanks Chao _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |