From: Joerg Roedel <jroe...@suse.de> IRQ remapping is only supported when all IOMMUs in the system support it. So check if all IOMMUs in the system support IRQ remapping before doing the allocations.
Signed-off-by: Joerg Roedel <jroe...@suse.de> --- drivers/iommu/intel_irq_remapping.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/iommu/intel_irq_remapping.c b/drivers/iommu/intel_irq_remapping.c index ff35b03..3ef63b8 100644 --- a/drivers/iommu/intel_irq_remapping.c +++ b/drivers/iommu/intel_irq_remapping.c @@ -568,14 +568,16 @@ static int __init intel_prepare_irq_remapping(void) goto error; } - for_each_iommu(iommu, drhd) { + /* First make sure all IOMMUs support IRQ remapping */ + for_each_iommu(iommu, drhd) if (!ecap_ir_support(iommu->ecap)) - continue; + goto error; - /* Do the allocations early */ + /* Do the allocations early */ + for_each_iommu(iommu, drhd) if (intel_setup_irq_remapping(iommu)) goto error; - } + return 0; error: intel_cleanup_irq_remapping(); -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/