[dpdk-stable] [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 stable
mailing list