summaryrefslogtreecommitdiffstats
path: root/kernel/dma/direct.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/dma/direct.c')
-rw-r--r--kernel/dma/direct.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/kernel/dma/direct.c b/kernel/dma/direct.c
index 22a12ab5a5e9..375c77e8d52f 100644
--- a/kernel/dma/direct.c
+++ b/kernel/dma/direct.c
@@ -309,7 +309,12 @@ int dma_direct_supported(struct device *dev, u64 mask)
309 309
310 min_mask = min_t(u64, min_mask, (max_pfn - 1) << PAGE_SHIFT); 310 min_mask = min_t(u64, min_mask, (max_pfn - 1) << PAGE_SHIFT);
311 311
312 return mask >= phys_to_dma(dev, min_mask); 312 /*
313 * This check needs to be against the actual bit mask value, so
314 * use __phys_to_dma() here so that the SME encryption mask isn't
315 * part of the check.
316 */
317 return mask >= __phys_to_dma(dev, min_mask);
313} 318}
314 319
315int dma_direct_mapping_error(struct device *dev, dma_addr_t dma_addr) 320int dma_direct_mapping_error(struct device *dev, dma_addr_t dma_addr)