iommu: Allow default domain type to be set on the kernel command line
authorWill Deacon <will.deacon@arm.com>
Thu, 5 Jan 2017 18:38:26 +0000 (18:38 +0000)
committerWill Deacon <will.deacon@arm.com>
Thu, 6 Apr 2017 15:06:44 +0000 (16:06 +0100)
commitfccb4e3b8ab0957628abec82675691c72f67003e
tree7671e81a6d9fce8266a49d6e397917dd317a0eab
parentbeb3c6a066bff1ba412f983cb9d1a42f4cd8f76a
iommu: Allow default domain type to be set on the kernel command line

The IOMMU core currently initialises the default domain for each group
to IOMMU_DOMAIN_DMA, under the assumption that devices will use
IOMMU-backed DMA ops by default. However, in some cases it is desirable
for the DMA ops to bypass the IOMMU for performance reasons, reserving
use of translation for subsystems such as VFIO that require it for
enforcing device isolation.

Rather than modify each IOMMU driver to provide different semantics for
DMA domains, instead we introduce a command line parameter that can be
used to change the type of the default domain. Passthrough can then be
specified using "iommu.passthrough=1" on the kernel command line.

Signed-off-by: Will Deacon <will.deacon@arm.com>
Documentation/admin-guide/kernel-parameters.txt
drivers/iommu/iommu.c