Re: [PATCH] sparc32: Page align size in arch_dma_alloc

From: Andreas Larsson
Date: Tue Sep 14 2021 - 04:51:59 EST


On 2021-09-14 08:17, Christoph Hellwig wrote:
Thanks. Can you take a look and test the two patches below on top of
your fix? A git tree is also available here:

http://git.infradead.org/users/hch/misc.git/shortlog/refs/heads/sparc32-generic-dma


In a quick test, this seems to work on LEON for code paths previously going to arch_dma_alloc and arch_dma_free. However, this makes setting up these DMA mappings to not go through sparc_dma_alloc_resource, and it seems important that they do that on Sun systems. Hopefully, someone with more knowledge about that could chime in here.

The added pgprot_dmacoherent is problematic as it sets SRMMU_PRIV, which sets up kernel access only. This was fine for arch_dma_alloc that sets up kernel accesses only, but for user space DMA mmap this would make them kernel accessable only. Having no sparc-specific pgprot_dmacoherent, keeping it to default to pgprot_noncached, is probably better.

--
Andreas Larsson