From: Viacheslav Ovsiienko
> Sent: Thursday, February 20, 2020 11:18 PM
> To: [email protected]
> Cc: Matan Azrad <[email protected]>; Raslan Darawsheh
> <[email protected]>; Thomas Monjalon <[email protected]>;
> [email protected]; [email protected]
> 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: [email protected]
> 
> Signed-off-by: Viacheslav Ovsiienko <[email protected]>
Acked-by: Matan Azrad <[email protected]>

Reply via email to