Message ID | 1415600812-27773-13-git-send-email-feng.wu@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 2014/11/10 14:26, Feng Wu wrote: > We don't need to migrate the irqs for VT-d Posted-Interrtups here. > When 'pst' is set in IRTE, the associated irq will be posted to > guests instead of interrupt remapping. The destination of the > interrupt is set in Posted-Interrupts Descriptor, and the migration > happens during VCPU scheduling. > > Signed-off-by: Feng Wu <feng.wu@intel.com> > --- > drivers/iommu/intel_irq_remapping.c | 7 +++++++ > 1 files changed, 7 insertions(+), 0 deletions(-) > > diff --git a/drivers/iommu/intel_irq_remapping.c b/drivers/iommu/intel_irq_remapping.c > index 87c02fe..249e2b1 100644 > --- a/drivers/iommu/intel_irq_remapping.c > +++ b/drivers/iommu/intel_irq_remapping.c > @@ -1038,6 +1038,13 @@ intel_ioapic_set_affinity(struct irq_data *data, const struct cpumask *mask, > if (get_irte(irq, &irte)) > return -EBUSY; > > + /* > + * If the interrupt is for posting, it is used by guests, > + * we cannot change IRTE here. > + */ > + if (irte.irq_post_low.pst == 1) > + return 0; Hi Feng, You should return some error code instead of 0, otherwise the irq core will get confused. > + > err = assign_irq_vector(irq, cfg, mask); > if (err) > return err; > -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/iommu/intel_irq_remapping.c b/drivers/iommu/intel_irq_remapping.c index 87c02fe..249e2b1 100644 --- a/drivers/iommu/intel_irq_remapping.c +++ b/drivers/iommu/intel_irq_remapping.c @@ -1038,6 +1038,13 @@ intel_ioapic_set_affinity(struct irq_data *data, const struct cpumask *mask, if (get_irte(irq, &irte)) return -EBUSY; + /* + * If the interrupt is for posting, it is used by guests, + * we cannot change IRTE here. + */ + if (irte.irq_post_low.pst == 1) + return 0; + err = assign_irq_vector(irq, cfg, mask); if (err) return err;
We don't need to migrate the irqs for VT-d Posted-Interrtups here. When 'pst' is set in IRTE, the associated irq will be posted to guests instead of interrupt remapping. The destination of the interrupt is set in Posted-Interrupts Descriptor, and the migration happens during VCPU scheduling. Signed-off-by: Feng Wu <feng.wu@intel.com> --- drivers/iommu/intel_irq_remapping.c | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-)