|
@@ -1798,12 +1798,11 @@ static int arm_smmu_device_dt_probe(struct platform_device *pdev)
|
|
|
smmu->num_context_irqs++;
|
|
|
}
|
|
|
|
|
|
- if (num_irqs < smmu->num_global_irqs) {
|
|
|
- dev_warn(dev, "found %d interrupts but expected at least %d\n",
|
|
|
- num_irqs, smmu->num_global_irqs);
|
|
|
- smmu->num_global_irqs = num_irqs;
|
|
|
+ if (!smmu->num_context_irqs) {
|
|
|
+ dev_err(dev, "found %d interrupts but expected at least %d\n",
|
|
|
+ num_irqs, smmu->num_global_irqs + 1);
|
|
|
+ return -ENODEV;
|
|
|
}
|
|
|
- smmu->num_context_irqs = num_irqs - smmu->num_global_irqs;
|
|
|
|
|
|
smmu->irqs = devm_kzalloc(dev, sizeof(*smmu->irqs) * num_irqs,
|
|
|
GFP_KERNEL);
|