Re: [PATCH v4 5/5] iommu/dma: Force swiotlb_max_mapping_size on an untrusted device

From: Will Deacon
Date: Wed Feb 28 2024 - 07:05:43 EST


On Tue, Feb 27, 2024 at 03:53:05PM +0000, Robin Murphy wrote:
> On 27/02/2024 3:40 pm, Christoph Hellwig wrote:
> > On Wed, Feb 21, 2024 at 11:35:04AM +0000, Will Deacon wrote:
> > > +static size_t iommu_dma_max_mapping_size(struct device *dev)
> > > +{
> > > + if (is_swiotlb_active(dev) && dev_is_untrusted(dev))
> > > + return swiotlb_max_mapping_size(dev);
> >
> > Curious: do we really need both checks here? If swiotlb is active
> > for a device (for whatever reason), aren't we then always bound
> > by the max size? If not please add a comment explaining it.
> >
>
> Oh, good point - if we have an untrusted device but SWIOTLB isn't
> initialised for whatever reason, then it doesn't matter what
> max_mapping_size returns because iommu_dma_map_page() is going to bail out
> regardless.

Makes sense. Since this is all internal to the IOMMU DMA code, I can just
drop the first part of the check.

I'll get a v5 out shortly.

Will