[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20080819185441.GC1152@linux-os.sc.intel.com>
Date: Tue, 19 Aug 2008 11:54:41 -0700
From: Suresh Siddha <suresh.b.siddha@...el.com>
To: yhlu.kernel@...il.com, mingo@...e.hu
Cc: linux-kernel@...r.kernel.org, ebiederm@...ssion.com, x86@...nel.org
Subject: [patch] fix intr-remap with dyn_array/nr_irqs changes
I didn't find time to closely review the dyn_array/nr_irqs changes. But
the appended patch is needed to fix the broken intr-remapping support on
x86/tip
And also, I don't see any locks used in to_irq_desc_with_new(). How are
we handling the concurrent usage scenarios. And also, this code can use
some cleanups (like the names, to_irq_desc_with_new()?) etc.
thanks,
suresh
---
In irq_2_iommu_with_new() and set_irte_irq(), irq_desc or
irq_2_iommu pointers may not be allocated. So use the routines which
will allocate them if they are not already allocated.
Signed-off-by: Suresh Siddha <suresh.b.siddha@...el.com>
---
diff --git a/drivers/pci/intr_remapping.c b/drivers/pci/intr_remapping.c
index 3593f0f..fbd82ff 100644
--- a/drivers/pci/intr_remapping.c
+++ b/drivers/pci/intr_remapping.c
@@ -76,7 +76,10 @@ static struct irq_2_iommu *irq_2_iommu_with_new(unsigned int irq)
struct irq_desc *desc;
struct irq_2_iommu *irq_iommu;
- desc = to_irq_desc(irq);
+ /*
+ * alloc irq desc if not allocated already.
+ */
+ desc = to_irq_desc_with_new(irq);
BUG_ON(!desc);
@@ -255,11 +258,7 @@ int set_irte_irq(int irq, struct intel_iommu *iommu, u16 index, u16 subhandle)
struct irq_2_iommu *irq_iommu;
spin_lock(&irq_2_ir_lock);
- irq_iommu = valid_irq_2_iommu(irq);
- if (!irq_iommu) {
- spin_unlock(&irq_2_ir_lock);
- return -1;
- }
+ irq_iommu = irq_2_iommu_with_new(irq);
irq_iommu->iommu = iommu;
irq_iommu->irte_index = index;
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists