Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3cc377b9 authored by Dan Williams's avatar Dan Williams
Browse files

dmaengine: fix enable for high order unmap pools



The higher order mempools support raid operations, and we want to
disable them when raid support is not enabled.  Making them conditional
on ASYNC_TX_DMA is not sufficient as other users (specifically dmatest)
will also issue raid operations.  Make raid drivers explicitly request
that the core carry the higher order pools.

Reported-by: default avatarEzequiel Garcia <ezequiel.garcia@free-electrons.com>
Tested-by: default avatarEzequiel Garcia <ezequiel.garcia@free-electrons.com>
Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
parent 8e5ee258
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -62,6 +62,7 @@ config INTEL_IOATDMA
	tristate "Intel I/OAT DMA support"
	depends on PCI && X86
	select DMA_ENGINE
	select DMA_ENGINE_RAID
	select DCA
	help
	  Enable support for the Intel(R) I/OAT DMA engine present
@@ -112,6 +113,7 @@ config MV_XOR
	bool "Marvell XOR engine support"
	depends on PLAT_ORION
	select DMA_ENGINE
	select DMA_ENGINE_RAID
	select ASYNC_TX_ENABLE_CHANNEL_SWITCH
	---help---
	  Enable support for the Marvell XOR engine.
@@ -187,6 +189,7 @@ config AMCC_PPC440SPE_ADMA
	tristate "AMCC PPC440SPe ADMA support"
	depends on 440SPe || 440SP
	select DMA_ENGINE
	select DMA_ENGINE_RAID
	select ARCH_HAS_ASYNC_TX_FIND_CHANNEL
	select ASYNC_TX_ENABLE_CHANNEL_SWITCH
	help
@@ -377,4 +380,7 @@ config DMATEST
	  Simple DMA test client. Say N unless you're debugging a
	  DMA Device driver.

config DMA_ENGINE_RAID
	bool

endif
+1 −1
Original line number Diff line number Diff line
@@ -912,7 +912,7 @@ struct dmaengine_unmap_pool {
#define __UNMAP_POOL(x) { .size = x, .name = "dmaengine-unmap-" __stringify(x) }
static struct dmaengine_unmap_pool unmap_pool[] = {
	__UNMAP_POOL(2),
	#if IS_ENABLED(CONFIG_ASYNC_TX_DMA)
	#if IS_ENABLED(CONFIG_DMA_ENGINE_RAID)
	__UNMAP_POOL(16),
	__UNMAP_POOL(128),
	__UNMAP_POOL(256),