Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
net/mlx5: fix multi-segment Tx inline data length
[ upstream commit e3c7bb5 ] If packet data length exceeds the configured limit for packet to be inlined in the queue descriptor the driver checks if hardware requires to do minimal data inline or the VLAN insertion offload is requested and not supported in hardware (that means we have to do VLAN insertion in software with inline data). Then driver scans the mbuf chain to find the minimal segment amount to satisfy the data needed for minimal inline. There was incorrect first segment inline data length calculation with missing VLAN header being inserted, that could lead to the segmentation fault in the mbuf chain scanning, for example for the packets: packet: mbuf0 pkt_len = 288, data_len = 156 mbuf1 pkt_len = 132, data_len = 132 txq->inlen_send = 290 The driver was trying to reach the inlen_send inline data length with missing VLAN header length added and was running out of the mbuf chain (there were just not enough data in the packet to satisfy the criteria). Fixes: 18a1c20 ("net/mlx5: implement Tx burst template") Fixes: ec837ad ("net/mlx5: fix multi-segment inline for the first segments") Signed-off-by: Viacheslav Ovsiienko <[email protected]> Acked-by: Suanming Mou <[email protected]>
- Loading branch information