aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/iommu/arm-smmu.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/iommu/arm-smmu.c b/drivers/iommu/arm-smmu.c
index 1f79daa5f4b1..e4693cee5f2c 100644
--- a/drivers/iommu/arm-smmu.c
+++ b/drivers/iommu/arm-smmu.c
@@ -1798,12 +1798,11 @@ static int arm_smmu_device_dt_probe(struct platform_device *pdev)
1798 smmu->num_context_irqs++; 1798 smmu->num_context_irqs++;
1799 } 1799 }
1800 1800
1801 if (num_irqs < smmu->num_global_irqs) { 1801 if (!smmu->num_context_irqs) {
1802 dev_warn(dev, "found %d interrupts but expected at least %d\n", 1802 dev_err(dev, "found %d interrupts but expected at least %d\n",
1803 num_irqs, smmu->num_global_irqs); 1803 num_irqs, smmu->num_global_irqs + 1);
1804 smmu->num_global_irqs = num_irqs; 1804 return -ENODEV;
1805 } 1805 }
1806 smmu->num_context_irqs = num_irqs - smmu->num_global_irqs;
1807 1806
1808 smmu->irqs = devm_kzalloc(dev, sizeof(*smmu->irqs) * num_irqs, 1807 smmu->irqs = devm_kzalloc(dev, sizeof(*smmu->irqs) * num_irqs,
1809 GFP_KERNEL); 1808 GFP_KERNEL);