fix intr-remap with dyn_array/nr_irqs changes
PATCH 1/1 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.
---
drivers/pci/intr_remapping.c +5 -6
@@ -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;
Quoted 12 lines · Suresh Siddha
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
---
Quoted 5 lines
In
irq_2_iommu_with_new()andset_irte_irq(),irq_descorirq_2_iommupointers may not be allocated. So use the routines which will allocate them if they are not already allocated.Signed-off-by Suresh Siddha <[email protected]>
i'm trying to rebase sparseirq to tip/x86/core.
will address your concern about lock after that.
Thanks
YH