net/mlx5: fix partial inline of fine grain packets
authorDariusz Sosnowski <dsosnowski@nvidia.com>
Wed, 17 Nov 2021 09:50:50 +0000 (11:50 +0200)
committerRaslan Darawsheh <rasland@nvidia.com>
Wed, 17 Nov 2021 10:48:18 +0000 (11:48 +0100)
commit7775172c045f3387cee47d3f32633255d37ba785
tree3af2d041cbd50780e8efa491fbd554fbbbb27983
parent429eccebc0986fffb2714320a35ba97ce9164207
net/mlx5: fix partial inline of fine grain packets

Assuming a user tried to send multi-segment packets, with
RTE_PMD_MLX5_FINE_GRANULARITY_INLINE flag set, using a device with
minimum inlining requirements (such as ConnectX-4 Lx or when user
specified them explicitly), sending such packets caused segfault.
Segfault was caused by failed invariants in
mlx5_tx_packet_multi_inline function.

This patch introduces a logic for multi-segment packets, with
RTE_PMD_MLX5_FINE_GRANULARITY_INLINE flag set, to omit mbuf scanning for
filling inline buffer and inline only minimal amount of data required.

Fixes: ec837ad0fc7c ("net/mlx5: fix multi-segment inline for the first segments")
Cc: stable@dpdk.org
Signed-off-by: Dariusz Sosnowski <dsosnowski@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
drivers/net/mlx5/mlx5_tx.h