Commit 7ab89b1
gso: Validate assumption of frag_list segementation
[ Upstream commit 43170c4 ]
Commit 07b26c9 ("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: 07b26c9 ("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>1 parent fcbf5a7 commit 7ab89b1
1 file changed
Lines changed: 14 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3076 | 3076 | | |
3077 | 3077 | | |
3078 | 3078 | | |
| 3079 | + | |
3079 | 3080 | | |
3080 | 3081 | | |
3081 | 3082 | | |
3082 | 3083 | | |
3083 | 3084 | | |
3084 | | - | |
3085 | | - | |
3086 | | - | |
3087 | | - | |
| 3085 | + | |
| 3086 | + | |
| 3087 | + | |
| 3088 | + | |
| 3089 | + | |
| 3090 | + | |
| 3091 | + | |
3088 | 3092 | | |
| 3093 | + | |
3089 | 3094 | | |
| 3095 | + | |
| 3096 | + | |
3090 | 3097 | | |
3091 | 3098 | | |
3092 | 3099 | | |
3093 | 3100 | | |
3094 | 3101 | | |
| 3102 | + | |
| 3103 | + | |
| 3104 | + | |
3095 | 3105 | | |
3096 | 3106 | | |
3097 | 3107 | | |
| |||
0 commit comments