Re: [PATCH] RDMA/rxe: Fix data copy for IB_SEND_INLINE

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 17/05/2024 09:43, Zhijian Li (Fujitsu) wrote:
> 
> 
> On 16/05/2024 17:50, Honggang LI wrote:
>> For RDMA Send and Write with IB_SEND_INLINE, the memory buffers
>> specified in sge list will be placed inline in the Send Request.
>>
>> The data should be copied by CPU from the virtual addresses of
>> corresponding sge list DMA addresses.
>>
>> Fixes: 8d7c7c0eeb74 ("RDMA: Add ib_virt_dma_to_page()")
>> Signed-off-by: Honggang LI <honggangli@xxxxxxx>
> 
> Good catch.
> 
> Reviewed-by: Li Zhijian <lizhijian@xxxxxxxxxxx>
> 
> (BTW, Does it mean current pyverb tests in rdma-core have not covered IB_SEND_INLINE)

At a glance, copy_inline_data_to_wqe() will only called from the ULP, not the rdma-core.



> 
> 
>> ---
>>    drivers/infiniband/sw/rxe/rxe_verbs.c | 2 +-
>>    1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/infiniband/sw/rxe/rxe_verbs.c b/drivers/infiniband/sw/rxe/rxe_verbs.c
>> index 614581989b38..b94d05e9167a 100644
>> --- a/drivers/infiniband/sw/rxe/rxe_verbs.c
>> +++ b/drivers/infiniband/sw/rxe/rxe_verbs.c
>> @@ -812,7 +812,7 @@ static void copy_inline_data_to_wqe(struct rxe_send_wqe *wqe,
>>    	int i;
>>    
>>    	for (i = 0; i < ibwr->num_sge; i++, sge++) {
>> -		memcpy(p, ib_virt_dma_to_page(sge->addr), sge->length);
>> +		memcpy(p, ib_virt_dma_to_ptr(sge->addr), sge->length);
>>    		p += sge->length;
>>    	}
>>    }




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux