Re: [PATCH 1/2] dma-coherent: remove the DMA_MEMORY_INCLUDES_CHILDREN flag

From: Robin Murphy
Date: Wed Jun 28 2017 - 10:34:17 EST


On 27/06/17 21:17, Christoph Hellwig wrote:
> This flag was never implemented or used.

And at worst, we can always bring it back.

Reviewed-by: Robin Murphy <robin.murphy@xxxxxxx>

> Signed-off-by: Christoph Hellwig <hch@xxxxxx>
> ---
> Documentation/DMA-API.txt | 4 ----
> drivers/base/dma-coherent.c | 2 --
> drivers/char/virtio_console.c | 3 ---
> include/linux/dma-mapping.h | 3 +--
> 4 files changed, 1 insertion(+), 11 deletions(-)
>
> diff --git a/Documentation/DMA-API.txt b/Documentation/DMA-API.txt
> index 6b20128fab8a..03072bc7ff74 100644
> --- a/Documentation/DMA-API.txt
> +++ b/Documentation/DMA-API.txt
> @@ -524,10 +524,6 @@ dma_alloc_coherent() be addressable using read()/write()/memcpy_toio() etc.
>
> One or both of these flags must be present.
>
> -DMA_MEMORY_INCLUDES_CHILDREN - make the declared memory be allocated by
> -dma_alloc_coherent of any child devices of this one (for memory residing
> -on a bridge).
> -
> DMA_MEMORY_EXCLUSIVE - only allocate memory from the declared regions.
> Do not allow dma_alloc_coherent() to fall back to system memory when
> it's out of memory in the declared region.
> diff --git a/drivers/base/dma-coherent.c b/drivers/base/dma-coherent.c
> index 2ae24c28e70c..e70e33d5c902 100644
> --- a/drivers/base/dma-coherent.c
> +++ b/drivers/base/dma-coherent.c
> @@ -109,8 +109,6 @@ static int dma_assign_coherent_memory(struct device *dev,
> return -EBUSY;
>
> dev->dma_mem = mem;
> - /* FIXME: this routine just ignores DMA_MEMORY_INCLUDES_CHILDREN */
> -
> return 0;
> }
>
> diff --git a/drivers/char/virtio_console.c b/drivers/char/virtio_console.c
> index ad843eb02ae7..48e86ce9fac8 100644
> --- a/drivers/char/virtio_console.c
> +++ b/drivers/char/virtio_console.c
> @@ -451,9 +451,6 @@ static struct port_buffer *alloc_buf(struct virtqueue *vq, size_t buf_size,
> * device is created by remoteproc, the DMA memory is
> * associated with the grandparent device:
> * vdev => rproc => platform-dev.
> - * The code here would have been less quirky if
> - * DMA_MEMORY_INCLUDES_CHILDREN had been supported
> - * in dma-coherent.c
> */
> if (!vq->vdev->dev.parent || !vq->vdev->dev.parent->parent)
> goto free_buf;
> diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h
> index 843ab866e0f4..fb66fe98e61d 100644
> --- a/include/linux/dma-mapping.h
> +++ b/include/linux/dma-mapping.h
> @@ -685,8 +685,7 @@ static inline int dma_get_cache_alignment(void)
> /* flags for the coherent memory api */
> #define DMA_MEMORY_MAP 0x01
> #define DMA_MEMORY_IO 0x02
> -#define DMA_MEMORY_INCLUDES_CHILDREN 0x04
> -#define DMA_MEMORY_EXCLUSIVE 0x08
> +#define DMA_MEMORY_EXCLUSIVE 0x04
>
> #ifdef CONFIG_HAVE_GENERIC_DMA_COHERENT
> int dma_declare_coherent_memory(struct device *dev, phys_addr_t phys_addr,
>