Re: [PATCH] RDMA/hns: Use dma_alloc_coherent() instead of kmalloc/dma_map_single()

From: Wenpeng Liang
Date: Sat Oct 09 2021 - 05:51:00 EST




On 2021/10/5 3:52, Jason Gunthorpe wrote:
> On Mon, Sep 27, 2021 at 08:59:13AM -0300, Jason Gunthorpe wrote:
>> On Sun, Sep 26, 2021 at 02:11:15PM +0800, Cai Huoqing wrote:
>>> Replacing kmalloc/kfree/dma_map_single/dma_unmap_single()
>>> with dma_alloc_coherent/dma_free_coherent() helps to reduce
>>> code size, and simplify the code, and coherent DMA will not
>>> clear the cache every time.
>>>
>>> Signed-off-by: Cai Huoqing <caihuoqing@xxxxxxxxx>
>>> drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 20 +++++---------------
>>> 1 file changed, 5 insertions(+), 15 deletions(-)
>>
>> Given I don't see any dma_sync_single calls for this mapping, isn't
>> this a correctness fix too?
>
> HNS folks?
>
> Jason
> .
>

Our SoC can keep cache coherent, so there is no exception even if
dma_sync_single* is not called, but the driver should not make
assumptions about SoC.

So using dma_alloc_coherent() instead of kmalloc/dma_map_single()
can simplify the code and achieve the same purpose.

Wenpeng Liang