diff options
author | Herbert Xu <[email protected]> | 2013-11-21 11:10:04 -0800 |
---|---|---|
committer | David S. Miller <[email protected]> | 2013-11-21 14:11:50 -0500 |
commit | 9d8506cc2d7ea1f911c72c100193a3677f6668c3 (patch) | |
tree | 33eec3f9e567cbf3141f7a3824559beb0a7cea3a /lib/memory-notifier-error-inject.c | |
parent | 91398a0992c8aa18eb7749060b75761ece5ddc57 (diff) |
gso: handle new frag_list of frags GRO packets
Recently GRO started generating packets with frag_lists of frags.
This was not handled by GSO, thus leading to a crash.
Thankfully these packets are of a regular form and are easy to
handle. This patch handles them in two ways. For completely
non-linear frag_list entries, we simply continue to iterate over
the frag_list frags once we exhaust the normal frags. For frag_list
entries with linear parts, we call pskb_trim on the first part
of the frag_list skb, and then process the rest of the frags in
the usual way.
This patch also kills a chunk of dead frag_list code that has
obviously never ever been run since it ends up generating a bogus
GSO-segmented packet with a frag_list entry.
Future work is planned to split super big packets into TSO
ones.
Fixes: 8a29111c7ca6 ("net: gro: allow to build full sized skb")
Reported-by: Christoph Paasch <[email protected]>
Reported-by: Jerry Chu <[email protected]>
Reported-by: Sander Eikelenboom <[email protected]>
Signed-off-by: Herbert Xu <[email protected]>
Signed-off-by: Eric Dumazet <[email protected]>
Tested-by: Sander Eikelenboom <[email protected]>
Tested-by: Eric Dumazet <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Diffstat (limited to 'lib/memory-notifier-error-inject.c')
0 files changed, 0 insertions, 0 deletions