Message ID | 563AF8B3.8030907@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Delegated to: | Bjorn Helgaas |
Headers | show |
On Thu, Nov 05, 2015 at 02:35:31PM +0800, Jiang Liu wrote: > Hi Keith, > Could you please try the attached patch? > Thanks! > Gerry Thanks! I anticipated this and tested the same thing yesterday, and it is successful. I'll apply to the series and send a new revision hopefully today. Not requiring a parent simplifies the driver since we don't define irq_domain_ops now, and the functionality they provided moves to the irq_chip. > From: Liu Jiang <jiang.liu@linux.intel.com> > Date: Thu, 5 Nov 2015 11:25:07 +0800 > Subject: [PATCH] msi: Relax msi_domain_alloc() to support parentless MSI > irqdomains > > Previously msi_domain_alloc() assumes MSI irqdomains always have parent > irqdomains, but that's not true for the new Intel VMD devices. So relax > msi_domain_alloc() to support parentless MSI irqdomains. > > Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com> > Signed-off-by: Liu Jiang <jiang.liu@linux.intel.com> > --- > kernel/irq/msi.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > > diff --git a/kernel/irq/msi.c b/kernel/irq/msi.c > index 7e6512b9dc1f..e4d3d707efff 100644 > --- a/kernel/irq/msi.c > +++ b/kernel/irq/msi.c > @@ -109,9 +109,11 @@ static int msi_domain_alloc(struct irq_domain *domain, unsigned int virq, > if (irq_find_mapping(domain, hwirq) > 0) > return -EEXIST; > > - ret = irq_domain_alloc_irqs_parent(domain, virq, nr_irqs, arg); > - if (ret < 0) > - return ret; > + if (domain->parent) { > + ret = irq_domain_alloc_irqs_parent(domain, virq, nr_irqs, arg); > + if (ret < 0) > + return ret; > + } > > for (i = 0; i < nr_irqs; i++) { > ret = ops->msi_init(domain, info, virq + i, hwirq + i, arg); > -- > 1.7.10.4 -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
From 6db1568564f8edee626d1c168b22ed5502abc6eb Mon Sep 17 00:00:00 2001 From: Liu Jiang <jiang.liu@linux.intel.com> Date: Thu, 5 Nov 2015 11:25:07 +0800 Subject: [PATCH] msi: Relax msi_domain_alloc() to support parentless MSI irqdomains Previously msi_domain_alloc() assumes MSI irqdomains always have parent irqdomains, but that's not true for the new Intel VMD devices. So relax msi_domain_alloc() to support parentless MSI irqdomains. Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com> Signed-off-by: Liu Jiang <jiang.liu@linux.intel.com> --- kernel/irq/msi.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/kernel/irq/msi.c b/kernel/irq/msi.c index 7e6512b9dc1f..e4d3d707efff 100644 --- a/kernel/irq/msi.c +++ b/kernel/irq/msi.c @@ -109,9 +109,11 @@ static int msi_domain_alloc(struct irq_domain *domain, unsigned int virq, if (irq_find_mapping(domain, hwirq) > 0) return -EEXIST; - ret = irq_domain_alloc_irqs_parent(domain, virq, nr_irqs, arg); - if (ret < 0) - return ret; + if (domain->parent) { + ret = irq_domain_alloc_irqs_parent(domain, virq, nr_irqs, arg); + if (ret < 0) + return ret; + } for (i = 0; i < nr_irqs; i++) { ret = ops->msi_init(domain, info, virq + i, hwirq + i, arg); -- 1.7.10.4