Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1174448 > unrolled thread
| Started by | Catalin Marinas <catalin.marinas@arm.com> |
|---|---|
| First post | 2015-06-30 13:10 +0200 |
| Last post | 2015-06-30 13:10 +0200 |
| Articles | 1 — 1 participant |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
Re: [PATCH v4] arm DMA: Fix allocation from CMA for coherent DMA Catalin Marinas <catalin.marinas@arm.com> - 2015-06-30 13:10 +0200
| From | Catalin Marinas <catalin.marinas@arm.com> |
|---|---|
| Date | 2015-06-30 13:10 +0200 |
| Subject | Re: [PATCH v4] arm DMA: Fix allocation from CMA for coherent DMA |
| Message-ID | <pH1Am-8qO-13@gated-at.bofh.it> |
On Mon, Jun 29, 2015 at 07:10:45PM +0200, Lorenzo Nava wrote:
> This patch allows the use of CMA for DMA coherent memory allocation.
> At the moment if the input parameter "is_coherent" is set to true
> the allocation is not made using the CMA, which I think is not the
> desired behaviour.
>
> Signed-off-by: Lorenzo Nava <lorenx4@xxxxxxxx>
It's nice to have a proper email address here.
> @@ -680,9 +684,14 @@ void *arm_dma_alloc(struct device *dev, size_t size, dma_addr_t *handle,
> static void *arm_coherent_dma_alloc(struct device *dev, size_t size,
> dma_addr_t *handle, gfp_t gfp, struct dma_attrs *attrs)
> {
> - pgprot_t prot = __get_dma_pgprot(attrs, PAGE_KERNEL);
> + pgprot_t prot;
> void *memory;
>
> + if (attrs == NULL)
> + prot = PAGE_KERNEL;
> + else
> + prot = __get_dma_pgprot(attrs, PAGE_KERNEL);
> +
> if (dma_alloc_from_coherent(dev, size, handle, &memory))
> return memory;
We have a slight inconsistency with commit 55af8a91640d (ARM: 8387/1:
arm/mm/dma-mapping.c: Add arm_coherent_dma_mmap) where the attrs are not
honoured for the coherent ops. That is, DMA_ATTRS_WRITE_COMBINE
doesn't have any effect for mmap but with your patch it still has an
effect on alloc.
I think we could just ignore it, the WRITE_COMBINE attr is a hint that
the arch may or may not implement and I haven't seen it used with
coherent mappings. So in this case just pass PAGE_KERNEL to
__dma_alloc() directly without calling __get_dma_pgprot().
(it also looks like commit 55af8a91640d left an unused attrs argument
for __arm_dma_mmap that can be removed as well)
Apart from the above, you can add:
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Back to top | Article view | linux.kernel
csiph-web