Re: [PATCH RFC] dma-direct: Try reallocation with GFP_DMA32 if possible

From: Christoph Hellwig
Date: Fri Apr 20 2018 - 05:46:14 EST


On Mon, Apr 16, 2018 at 05:18:19PM +0200, Takashi Iwai wrote:
> As the recent swiotlb bug revealed, we seem to have given up the
> direct DMA allocation too early and felt back to swiotlb allocation.
> The reason is that swiotlb allocator expected that dma_direct_alloc()
> would try harder to get pages even below 64bit DMA mask with
> GFP_DMA32, but the function doesn't do that but only deals with
> GFP_DMA case.
>
> This patch adds a similar fallback reallocation with GFP_DMA32 as
> we've done with GFP_DMA. The condition is that the coherent mask is
> smaller than 64bit (i.e. some address limitation), and neither GFP_DMA
> nor GFP_DMA32 is set beforehand.
>
> Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
>
> ---
>
> This is a resend of a test patch included in the previous thread
> ("swiotlb: Fix unexpected swiotlb_alloc_coherent() failures").

I like the patch, but as-is it doesn't apply. Can you resend it against
latest Linus' tree?