|
3588里面如果dma拿到的内存是cma的,得修改这个
+++ b/kernel/dma/direct.c
@@ -165,11 +165,11 @@ void *dma_direct_alloc(struct device *dev, size_t size,
* Remapping or decrypting memory may block. If either is required and
* we can't block, allocate the memory from the atomic pools.
*/
- if (IS_ENABLED(CONFIG_DMA_COHERENT_POOL) &&
- !gfpflags_allow_blocking(gfp) &&
- (force_dma_unencrypted(dev) ||
- (IS_ENABLED(CONFIG_DMA_DIRECT_REMAP) && !dev_is_dma_coherent(dev))))
- return dma_direct_alloc_from_pool(dev, size, dma_handle, gfp);
+ // if (IS_ENABLED(CONFIG_DMA_COHERENT_POOL) &&
+ // !gfpflags_allow_blocking(gfp) &&
+ // (force_dma_unencrypted(dev) ||
+ // (IS_ENABLED(CONFIG_DMA_DIRECT_REMAP) && !dev_is_dma_coherent(dev))))
+ // return dma_direct_alloc_from_pool(dev, size, dma_handle, gfp);
/* we always manually zero the memory once we are done */
page = __dma_direct_alloc_pages(dev, size, gfp & ~__GFP_ZERO); |
|