On Tue, May 10, 2022 at 06:26:55PM +0000, Michael Kelley (LINUX) wrote: > > Hmm, this seems a bit pessimistic - the offset can vary per mapping, so > > it feels to me like it should really be the caller's responsibility to > > account for it if they're already involved enough to care about both > > constraints. But I'm not sure how practical that would be. > > Tianyu and I discussed this prior to his submitting the patch. > Presumably dma_max_mapping_size() exists so that the higher > level blk-mq code can limit the size of I/O requests to something > that will "fit" in the swiotlb when bounce buffering is enabled. Yes, the idea that upper level code doesn't need to care was very much the idea behind dma_max_mapping_size(). > As you mentioned, how else would a caller handle this situation? Well, we could look at dma_get_min_align_mask in the caller and do the calculation there, but I really don't think that is a good idea. So this patch looks sensible to me.