diff options
author | Ilan Tayari <ilant@mellanox.com> | 2017-04-19 21:26:07 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-05-03 08:36:36 -0700 |
commit | 7ab89b176b7a6c9366e4c3c309bf69be652e9baa (patch) | |
tree | 26f266165f92a2fb6b6e0a2d0225f1c8cd4c36e2 /net/sctp/sysctl.c | |
parent | fcbf5a71a646f03f731d67ad86acfaac2511d29a (diff) | |
download | linux-stable-7ab89b176b7a6c9366e4c3c309bf69be652e9baa.tar.gz linux-stable-7ab89b176b7a6c9366e4c3c309bf69be652e9baa.tar.bz2 linux-stable-7ab89b176b7a6c9366e4c3c309bf69be652e9baa.zip |
gso: Validate assumption of frag_list segementation
[ Upstream commit 43170c4e0ba709c79130c3fe5a41e66279950cd0 ]
Commit 07b26c9454a2 ("gso: Support partial splitting at the frag_list
pointer") assumes that all SKBs in a frag_list (except maybe the last
one) contain the same amount of GSO payload.
This assumption is not always correct, resulting in the following
warning message in the log:
skb_segment: too many frags
For example, mlx5 driver in Striding RQ mode creates some RX SKBs with
one frag, and some with 2 frags.
After GRO, the frag_list SKBs end up having different amounts of payload.
If this frag_list SKB is then forwarded, the aforementioned assumption
is violated.
Validate the assumption, and fall back to software GSO if it not true.
Change-Id: Ia03983f4a47b6534dd987d7a2aad96d54d46d212
Fixes: 07b26c9454a2 ("gso: Support partial splitting at the frag_list pointer")
Signed-off-by: Ilan Tayari <ilant@mellanox.com>
Signed-off-by: Ilya Lesokhin <ilyal@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'net/sctp/sysctl.c')
0 files changed, 0 insertions, 0 deletions