On Thu, Jun 01, 2023 at 08:47:28PM +0100, Robin Murphy wrote: > On 2023-05-16 01:00, Jason Gunthorpe wrote: > > These drivers don't support IOMMU_DOMAIN_DMA, so this commit effectively > > allows them to support that mode. > > > > The prior work to require default_domains makes this safe because every > > one of these drivers is either compilation incompatible with dma-iommu.c, > > or already establishing a default_domain. In both cases alloc_domain() > > will never be called with IOMMU_DOMAIN_DMA for these drivers so it is safe > > to drop the test. > > > > Removing these tests clarifies that the domain allocation path is only > > about the functionality of a paging domain and has nothing to do with > > policy of how the paging domain is used for UNMANAGED/DMA/DMA_FQ. > > > > Tested-by: Niklas Schnelle <schnelle@xxxxxxxxxxxxx> > > Signed-off-by: Jason Gunthorpe <jgg@xxxxxxxxxx> > > --- > > drivers/iommu/fsl_pamu_domain.c | 7 ++----- > > drivers/iommu/msm_iommu.c | 7 ++----- > > drivers/iommu/mtk_iommu_v1.c | 7 ++----- > > drivers/iommu/omap-iommu.c | 7 ++----- > > drivers/iommu/s390-iommu.c | 7 ++----- > > 5 files changed, 10 insertions(+), 25 deletions(-) > > > > diff --git a/drivers/iommu/fsl_pamu_domain.c b/drivers/iommu/fsl_pamu_domain.c > > index ca4f5ebf028783..8d5d6a3acf9dfd 100644 > > --- a/drivers/iommu/fsl_pamu_domain.c > > +++ b/drivers/iommu/fsl_pamu_domain.c > > @@ -192,13 +192,10 @@ static void fsl_pamu_domain_free(struct iommu_domain *domain) > > kmem_cache_free(fsl_pamu_domain_cache, dma_domain); > > } > > -static struct iommu_domain *fsl_pamu_domain_alloc(unsigned type) > > +static struct iommu_domain *fsl_pamu_domain_alloc_paging(struct device *dev) > > This isn't a paging domain - it doesn't support map/unmap, and AFAICT all it > has ever been intended to do is "isolate" accesses to within an aperture > which is never set to anything less than the entire physical address space > :/ Uh.. Yes, I missed that.. Yikes I'll drop that hunk It would be horrifying if this driver was ever used with VFIO, we should definitely block that as it doesn't meet VFIO's security model.. It kind of looks like all this is to support drivers/soc/fsl/qbman/qman_portal.c which does call iommu_domain_alloc()? It looks like the only point is to call fsl_pamu_configure_l1_stash() Thanks, Jason