linux/kernel/dma
Lendacky, Thomas c92a54cfa0 dma-direct: do not include SME mask in the DMA supported check
The dma_direct_supported() function intends to check the DMA mask against
specific values. However, the phys_to_dma() function includes the SME
encryption mask, which defeats the intended purpose of the check. This
results in drivers that support less than 48-bit DMA (SME encryption mask
is bit 47) from being able to set the DMA mask successfully when SME is
active, which results in the driver failing to initialize.

Change the function used to check the mask from phys_to_dma() to
__phys_to_dma() so that the SME encryption mask is not part of the check.

Fixes: c1d0af1a1d ("kernel/dma/direct: take DMA offset into account in dma_direct_supported")
Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
2018-12-17 18:02:11 +01:00
..
coherent.c dma-mapping: move all DMA mapping code to kernel/dma 2018-06-14 08:50:37 +02:00
contiguous.c dma-mapping: fix panic caused by passing empty cma command line argument 2018-09-20 09:01:08 +02:00
debug.c dma-debug: Check for drivers mapping invalid addresses in dma_map_single() 2018-10-08 09:44:17 +02:00
direct.c dma-direct: do not include SME mask in the DMA supported check 2018-12-17 18:02:11 +01:00
Kconfig dma-mapping: consolidate the dma mmap implementations 2018-09-20 09:01:16 +02:00
Makefile dma-mapping: merge direct and noncoherent ops 2018-09-20 09:01:15 +02:00
mapping.c dma-mapping: support non-coherent devices in dma_common_get_sgtable 2018-09-20 09:01:17 +02:00
swiotlb.c swiotlb: Skip cache maintenance on map error 2018-11-21 18:47:58 +01:00
virt.c dma-mapping: move all DMA mapping code to kernel/dma 2018-06-14 08:50:37 +02:00