[PATCH v2] mm/dmapool.c: avoid duplicate memset within dma_pool_alloc
Liu Song
liusong at linux.alibaba.com
Thu Aug 18 01:37:44 PDT 2022
A helper function "use_dev_coherent_memory" is introduced here to
>>>> determine whether the memory is allocated by "dma_alloc_from_dev_coherent".
>>>>
>>>> And use "get_dma_ops" to determine whether the memory is allocated by
>>>> "dma_direct_alloc".
> WTF? get_dma_ops is privat to the DMA API layer, and dmapool has no
> business even using that. Even independent of this particular case,
> consumers of an API never have any business looking at the implementation
> of the API, that is the whole point of the abstraction.
>
>> It's not even that, the change here is just obviously broken, since it ends
>> up entirely ignoring want_init_on_alloc() for devices using dma-direct.
>> Sure, the memory backing a dma_page is zeroed *once* by its initial
>> dma-coherent allocation, but who says we're not not reallocating pool
>> entries from an existing dma_page?
> And yes, in addition to that it also is completely broken.
After reading everyone's comments, I found that fixing this patch will
make the code look strange, so the benefits of the changes will be
dispensable, so I also agree to discard this patch.
Sorry for this trouble again.
Thanks
More information about the linux-arm-kernel
mailing list