···600600601601One or both of these flags must be present.602602603603-- DMA_MEMORY_INCLUDES_CHILDREN - make the declared memory be allocated by604604- dma_alloc_coherent of any child devices of this one (for memory residing605605- on a bridge).606606-607603- DMA_MEMORY_EXCLUSIVE - only allocate memory from the declared regions.608604 Do not allow dma_alloc_coherent() to fall back to system memory when609605 it's out of memory in the declared region.
···451451 * device is created by remoteproc, the DMA memory is452452 * associated with the grandparent device:453453 * vdev => rproc => platform-dev.454454- * The code here would have been less quirky if455455- * DMA_MEMORY_INCLUDES_CHILDREN had been supported456456- * in dma-coherent.c457454 */458455 if (!vq->vdev->dev.parent || !vq->vdev->dev.parent->parent)459456 goto free_buf;
+1-2
include/linux/dma-mapping.h
···696696/* flags for the coherent memory api */697697#define DMA_MEMORY_MAP 0x01698698#define DMA_MEMORY_IO 0x02699699-#define DMA_MEMORY_INCLUDES_CHILDREN 0x04700700-#define DMA_MEMORY_EXCLUSIVE 0x08699699+#define DMA_MEMORY_EXCLUSIVE 0x04701700702701#ifdef CONFIG_HAVE_GENERIC_DMA_COHERENT703702int dma_declare_coherent_memory(struct device *dev, phys_addr_t phys_addr,