Re: [PATCH] MIPS: Fix `dma_alloc_coherent' returning a non-coherent allocation

From: Paul Burton
Date: Mon Nov 05 2018 - 13:10:45 EST


Hi Maciej,

On Thu, Nov 01, 2018 at 07:54:24AM +0000, Maciej W. Rozycki wrote:
> Fix a MIPS `dma_alloc_coherent' regression from commit bc3ec75de545
> ("dma-mapping: merge direct and noncoherent ops") that causes a cached
> allocation to be returned on noncoherent cache systems.
>
> This is due to an inverted check now used in the MIPS implementation of
> `arch_dma_alloc' on the result from `dma_direct_alloc_pages' before
> doing the cached-to-uncached mapping of the allocation address obtained.
> The mapping has to be done for a non-NULL rather than NULL result,
> because a NULL result means the allocation has failed.
>
> Invert the check for correct operation then.
>
> Signed-off-by: Maciej W. Rozycki <macro@xxxxxxxxxxxxxx>
> Fixes: bc3ec75de545 ("dma-mapping: merge direct and noncoherent ops")
> Cc: stable@xxxxxxxxxxxxxxx # 4.19+
> ---
> arch/mips/mm/dma-noncoherent.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)

Thanks, nice catch! Applied to mips-fixes.

Paul