Re: [PATCH net-next v7 1/6] page_pool: frag API support for 32-bit arch with 64-bit DMA
From: Jakub Kicinski <kuba@kernel.org>
Date: 2023-08-28 15:39:06
Also in:
lkml
From: Jakub Kicinski <kuba@kernel.org>
Date: 2023-08-28 15:39:06
Also in:
lkml
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!