mlx5: fix scattered Tx with too many segments
authorAdrien Mazarguil <adrien.mazarguil@6wind.com>
Mon, 23 Nov 2015 14:44:45 +0000 (15:44 +0100)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Tue, 24 Nov 2015 16:49:27 +0000 (17:49 +0100)
Buffers with too many segments are linearized to overcome
MLX5_PMD_SGE_WR_N, unfortunately the last segment is never sent.

Fixes: 3ee8444608a9 ("mlx5: support scattered Rx and Tx")

Signed-off-by: Jesper Wramberg <jesper.wramberg@gmail.com>
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
drivers/net/mlx5/mlx5_rxtx.c

index 4c6ed32..80d0c97 100644 (file)
@@ -325,6 +325,8 @@ tx_burst_sg(struct txq *txq, unsigned int segs, struct txq_elt *elt,
                sge->length = size;
                sge->lkey = txq->mr_linear->lkey;
                sent_size += size;
+               /* Include last segment. */
+               segs++;
        }
        return (struct tx_burst_sg_ret){
                .length = sent_size,