dma_alloc_from_pool is the allocator used when the caller can't sleep, and as that is reusing memory it really has to call memset or a memset-like function on the already uncached memory unfortunately. The dma engine operation that is doing this allocation is documented as not being able to sleep, which is a bit unfortunate as the storage driver above it could sleep just fine. Adding the dmaengine maintainer and list if there is a way to pass a gfp flag or some other indicator that the implementations can sleep, which would avoid the need to use the not very scalable dma pool, and thus also the need to memset on uncached memory.