Skip to content

Commit d1e2022

Browse files
vivekgautam1wildea01
authored andcommitted
iommu/arm-smmu: Error out only if not enough context interrupts
Currently we check if the number of context banks is not equal to num_context_interrupts. However, there are booloaders such as, one on sdm845 that reserves few context banks and thus kernel views less than the total available context banks. So, although the hardware definition in device tree would mention the correct number of context interrupts, this number can be greater than the number of context banks visible to smmu in kernel. We should therefore error out only when the number of context banks is greater than the available number of context interrupts. Signed-off-by: Vivek Gautam <[email protected]> Suggested-by: Tomasz Figa <[email protected]> Cc: Robin Murphy <[email protected]> Cc: Will Deacon <[email protected]> [will: drop useless printk] Signed-off-by: Will Deacon <[email protected]>
1 parent 29859ae commit d1e2022

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

drivers/iommu/arm-smmu.c

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2103,12 +2103,16 @@ static int arm_smmu_device_probe(struct platform_device *pdev)
21032103
if (err)
21042104
return err;
21052105

2106-
if (smmu->version == ARM_SMMU_V2 &&
2107-
smmu->num_context_banks != smmu->num_context_irqs) {
2108-
dev_err(dev,
2109-
"found only %d context interrupt(s) but %d required\n",
2110-
smmu->num_context_irqs, smmu->num_context_banks);
2111-
return -ENODEV;
2106+
if (smmu->version == ARM_SMMU_V2) {
2107+
if (smmu->num_context_banks > smmu->num_context_irqs) {
2108+
dev_err(dev,
2109+
"found only %d context irq(s) but %d required\n",
2110+
smmu->num_context_irqs, smmu->num_context_banks);
2111+
return -ENODEV;
2112+
}
2113+
2114+
/* Ignore superfluous interrupts */
2115+
smmu->num_context_irqs = smmu->num_context_banks;
21122116
}
21132117

21142118
for (i = 0; i < smmu->num_global_irqs; ++i) {

0 commit comments

Comments
 (0)