[patch for-5.8] dma-pool: decouple DMA_REMAP from DMA_COHERENT_POOL
DMA_REMAP is an unnecessary requirement for AMD SEV, which requires DMA_COHERENT_POOL, so avoid selecting it when it is otherwise unnecessary.
The only other requirement for DMA coherent pools is DMA_DIRECT_REMAP, so ensure that properly selects the config option when needed.
Fixes: 82fef0ad811f ("x86/mm: unencrypted non-blocking DMA allocations use coherent pools") Suggested-by: Christoph Hellwig hch@lst.de Signed-off-by: David Rientjes rientjes@google.com --- kernel/dma/Kconfig | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/kernel/dma/Kconfig b/kernel/dma/Kconfig --- a/kernel/dma/Kconfig +++ b/kernel/dma/Kconfig @@ -73,18 +73,18 @@ config SWIOTLB config DMA_NONCOHERENT_MMAP bool
+config DMA_COHERENT_POOL + bool + config DMA_REMAP + bool depends on MMU select GENERIC_ALLOCATOR select DMA_NONCOHERENT_MMAP - bool - -config DMA_COHERENT_POOL - bool - select DMA_REMAP
config DMA_DIRECT_REMAP bool + select DMA_REMAP select DMA_COHERENT_POOL
config DMA_CMA
Excerpts from David Rientjes's message of June 11, 2020 3:25 am:
DMA_REMAP is an unnecessary requirement for AMD SEV, which requires DMA_COHERENT_POOL, so avoid selecting it when it is otherwise unnecessary.
The only other requirement for DMA coherent pools is DMA_DIRECT_REMAP, so ensure that properly selects the config option when needed.
Fixes: 82fef0ad811f ("x86/mm: unencrypted non-blocking DMA allocations use coherent pools") Suggested-by: Christoph Hellwig hch@lst.de Signed-off-by: David Rientjes rientjes@google.com
kernel/dma/Kconfig | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-)
Works for me with SME on or off with af7b480103, and with SME off in abfbb29297. There is some regression with amdgpu and SME between those two points, I need to check that out too. I haven't tested either before or after with SEV (which I'm not even sure my system supports). Regardless, this is a definite improvement.
Tested-by: Alex Xu (Hello71) alex_y_xu@yahoo.ca
Thanks, Alex.
participants (3)
-
Alex Xu (Hello71)
-
Christoph Hellwig
-
David Rientjes