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

Matan Azrad matan at mellanox.com
Fri Feb 21 09:25:40 CET 2020


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>


More information about the dev mailing list