Re: [PATCH] drm/i915: stop using swiotlb

From: Tvrtko Ursulin
Date: Fri Jul 22 2022 - 06:14:11 EST




On 22/07/2022 10:58, Christoph Hellwig wrote:
On Fri, Jul 22, 2022 at 10:45:54AM +0100, Tvrtko Ursulin wrote:
- unsigned int size = swiotlb_max_segment();
-
- if (size == 0)
- size = UINT_MAX;

On a more detailed look, there was a CI failure which makes me think this
cap might need to stay. Because max sg segment is unsigned int. So I wonder
if sg contstruction overflows without it.

If this quick analysis is right, you could leave i915_sg_segment_size
helper and cap the return from dma_max_mapping_size to UINT_MAX in it.

As dma_max_mapping_size retuns a size_t it would be good to make
all variables using it a size_t as well. In places where that gets
lower to an unsigned int your probably want this cap.

Yep. Problem we have is struct scatterlist length field, which is unsigned int, since all our backing storage handling is built on top of it. Therefore I think capping in this helper should be good.

Regards,

Tvrtko