On 2017-08-09 15:37, Christoph Hellwig wrote:
On Tue, Aug 08, 2017 at 11:15:35AM +0200, Michael Moese wrote:
All memory allocation functions have a pendant for allocating zeroed
memory, but dmam_alloc_coherent does not have such a pendant.
However, it is easier to read dmam_zalloc_coherent than passing an extra
flag or, even worse, see memset() after the allocation.
This patch adds an inline function dmam_zalloc_coherent(), exactly like
the implementation of dma_zalloc_coherent().
I'm a bit worried about the __GFP_ZERO as we have lots of non-kmalloc
implementations of these. But on the other hand we already implement
dma_zalloc_coherent the same way, which means we'd already buggy.
So I plan to apply this for 4.14, but I also plan to spend some time
to implement all the existin alloc ops to make sure it's going to work
Frankly, since introducing dma_mmap_coherent, dma_alloc_coherent already
clears allocated buffers to avoid potential information leak to userspace.
There are even drivers that rely on such behavior, see
Maybe it would make sense to properly document it and then convert
dma_zalloc* to standard dma_alloc_* calls?
Marek Szyprowski, PhD
Samsung R&D Institute Poland