diff options
| -rw-r--r-- | drivers/iommu/arm-smmu.c | 9 |
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); |
