]> git.baikalelectronics.ru Git - kernel.git/commit
MIPS: Fix `dma_alloc_coherent' returning a non-coherent allocation
authorMaciej W. Rozycki <macro@linux-mips.org>
Thu, 1 Nov 2018 07:54:24 +0000 (07:54 +0000)
committerPaul Burton <paul.burton@mips.com>
Mon, 5 Nov 2018 18:08:13 +0000 (10:08 -0800)
commitb3c5b8bd7dcd580129c00ca34fcda3e9cc5927ca
tree1220e311780a26fe3c3c69c662dc76d014c47722
parente25f9efbda60a35accc86f62bb5a8f3f9c9683d4
MIPS: Fix `dma_alloc_coherent' returning a non-coherent allocation

Fix a MIPS `dma_alloc_coherent' regression from commit 271cc42564c7
("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@linux-mips.org>
Signed-off-by: Paul Burton <paul.burton@mips.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Fixes: 271cc42564c7 ("dma-mapping: merge direct and noncoherent ops")
Patchwork: https://patchwork.linux-mips.org/patch/20965/
arch/mips/mm/dma-noncoherent.c