Re: [PATCH net-next v7 1/6] page_pool: frag API support for 32-bit arch with 64-bit DMA

From: Jakub Kicinski
Date: Mon Aug 28 2023 - 11:39:06 EST


On Mon, 28 Aug 2023 07:50:33 -0700 Alexander Duyck wrote:
> Actually we could keep it pretty simple. We just have to create a
> #define using DMA_BIT_MASK for the size of the page pool DMA. We could
> name it something like PP_DMA_BIT_MASK. The drivers would just have to
> use that to define their bit mask when they call
> dma_set_mask_and_coherent. In that case the DMA API would switch to
> bounce buffers automatically in cases where the page DMA address would
> be out of bounds.
>
> The other tweak we could look at doing would be to just look at the
> dma_get_required_mask and add a warning and/or fail to load page pool
> on systems where the page pool would not be able to process that when
> ANDed with the device dma mask.
>
> With those two changes the setup should be rock solid in terms of any
> risks of the DMA address being out of bounds, and with minimal
> performance impact as we would have verified all possibilities before
> we even get into the hot path.

Sounds like a plan!