iommu: Do not probe devices on IOMMU-less busses
authorThierry Reding <treding@nvidia.com>
Mon, 11 May 2020 16:10:00 +0000 (18:10 +0200)
committerJoerg Roedel <jroedel@suse.de>
Wed, 13 May 2020 08:42:14 +0000 (10:42 +0200)
commitf38338cf0691b5fae5f9a46d188eef92ab9e6296
tree21f2182ba6772f94c427e4fd228ed5485fc220b5
parentcfcccbe8879f79bc9f8a162bcb482c74b8768094
iommu: Do not probe devices on IOMMU-less busses

The host1x bus implemented on Tegra SoCs is primarily an abstraction to
create logical device from multiple platform devices. Since the devices
in such a setup are typically hierarchical, DMA setup still needs to be
done so that DMA masks can be properly inherited, but we don't actually
want to attach the host1x logical devices to any IOMMU. The platform
devices that make up the logical device are responsible for memory bus
transactions, so it is them that will need to be attached to the IOMMU.

Add a check to __iommu_probe_device() that aborts IOMMU setup early for
busses that don't have the IOMMU operations pointer set since they will
cause a crash otherwise.

Signed-off-by: Thierry Reding <treding@nvidia.com>
Link: https://lore.kernel.org/r/20200511161000.3853342-1-thierry.reding@gmail.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/iommu.c