[dpdk-dev] [PATCH] net/mlx5: fix last completed built descriptor

Ferruh Yigit ferruh.yigit at intel.com
Fri Feb 21 10:42:16 CET 2020


On 2/21/2020 8:25 AM, Matan Azrad wrote:
> From: Viacheslav Ovsiienko
>> Sent: Thursday, February 20, 2020 11:18 PM
>> To: dev at dpdk.org
>> Cc: Matan Azrad <matan at mellanox.com>; Raslan Darawsheh
>> <rasland at mellanox.com>; Thomas Monjalon <thomas at monjalon.net>;
>> ferruh.yigit at intel.com; stable at dpdk.org
>> Subject: [PATCH] net/mlx5: fix last completed built descriptor
>>
>> The routine sending packets with Multi-Packet Write method assigns the
>> wqe_last variable with transmit descriptor (WQE - work queue entry) being
>> built. If send queue is close to full state, the WQE has no data yet (trying to
>> put the first packet) and there is no enough space in descriptor for the next
>> packet the WQE is discarded and the stored wqe_last value becomes invalid -
>> points to the discarded WQE.
>>
>> The mlx5_tx_burst_request_completion() routine might set the completion
>> request flags in the WQE pointed by wqe_last, it is safe, but the next
>> mlx5_tx_burst call uses the WQE as the first free one and request
>> completion flags might be overwritten and completion request will be lost
>> causing the transmit  datapath malfunction.
>>
>> Fixes: 8b581c690a54 ("net/mlx5: move Tx complete request routine")
>> Cc: stable at dpdk.org
>>
>> Signed-off-by: Viacheslav Ovsiienko <viacheslavo at mellanox.com>
> Acked-by: Matan Azrad <matan at mellanox.com>
> 

Applied to dpdk-next-net/master, thanks.


More information about the dev mailing list