diff options
author | Jason Gunthorpe <jgg@nvidia.com> | 2023-09-13 15:43:41 +0200 |
---|---|---|
committer | Joerg Roedel <jroedel@suse.de> | 2023-09-25 11:40:56 +0200 |
commit | 59ddce4418da483c932bc7a08b88d6ba14020e83 (patch) | |
tree | 99b2dd4904c88bd594302512dd30ebf050388713 /drivers/irqchip/irq-mxs.c | |
parent | iommu/mtk_iommu_v1: Implement an IDENTITY domain (diff) | |
download | linux-59ddce4418da483c932bc7a08b88d6ba14020e83.tar.xz linux-59ddce4418da483c932bc7a08b88d6ba14020e83.zip |
iommu: Reorganize iommu_get_default_domain_type() to respect def_domain_type()
Except for dart (which forces IOMMU_DOMAIN_DMA) every driver returns 0 or
IDENTITY from ops->def_domain_type().
The drivers that return IDENTITY have some kind of good reason, typically
that quirky hardware really can't support anything other than IDENTITY.
Arrange things so that if the driver says it needs IDENTITY then
iommu_get_default_domain_type() either fails or returns IDENTITY. It will
not ignore the driver's override to IDENTITY.
Split the function into two steps, reducing the group device list to the
driver's def_domain_type() and the untrusted flag.
Then compute the result based on those two reduced variables. Fully reject
combining untrusted with IDENTITY.
Remove the debugging print on the iommu_group_store_type() failure path,
userspace should not be able to trigger kernel prints.
This makes the next patch cleaner that wants to force IDENTITY always for
ARM_IOMMU because there is no support for DMA.
Reviewed-by: Jerry Snitselaar <jsnitsel@redhat.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Link: https://lore.kernel.org/r/8-v8-81230027b2fa+9d-iommu_all_defdom_jgg@nvidia.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
Diffstat (limited to 'drivers/irqchip/irq-mxs.c')
0 files changed, 0 insertions, 0 deletions