iommu/arm-smmu: Fall back to global bypass
authorRobin Murphy <robin.murphy@arm.com>
Mon, 12 Sep 2016 16:13:44 +0000 (17:13 +0100)
committerWill Deacon <will.deacon@arm.com>
Fri, 16 Sep 2016 08:34:16 +0000 (09:34 +0100)
commitdc87a98db751a98577fc6a89b4f26180fc020d24
treec94bb65411214bab89e874394434119877badf2e
parentb9bc88118029d20f25f9e457a147de65ada00f7c
iommu/arm-smmu: Fall back to global bypass

Unlike SMMUv2, SMMUv3 has no easy way to bypass unknown stream IDs,
other than allocating and filling in the entire stream table with bypass
entries, which for some configurations would waste *gigabytes* of RAM.
Otherwise, all transactions on unknown stream IDs will simply be aborted
with a C_BAD_STREAMID event.

Rather than render the system unusable in the case of an invalid DT,
avoid enabling the SMMU altogether such that everything bypasses
(though letting the explicit disable_bypass option take precedence).

Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
drivers/iommu/arm-smmu-v3.c