diff options
| author | Eric Dumazet <[email protected]> | 2023-04-28 04:32:31 +0000 |
|---|---|---|
| committer | David S. Miller <[email protected]> | 2023-04-28 09:40:38 +0100 |
| commit | 7e692df3933628d974acb9f5b334d2b3e885e2a6 (patch) | |
| tree | d1035e03aa85a1181ee43d4f1576581c4fb1e323 /tools/perf/scripts/python/stackcollapse.py | |
| parent | 6f75cd166a5a3c0bc50441faa8b8304f60522fdd (diff) | |
tcp: fix skb_copy_ubufs() vs BIG TCP
David Ahern reported crashes in skb_copy_ubufs() caused by TCP tx zerocopy
using hugepages, and skb length bigger than ~68 KB.
skb_copy_ubufs() assumed it could copy all payload using up to
MAX_SKB_FRAGS order-0 pages.
This assumption broke when BIG TCP was able to put up to 512 KB per skb.
We did not hit this bug at Google because we use CONFIG_MAX_SKB_FRAGS=45
and limit gso_max_size to 180000.
A solution is to use higher order pages if needed.
v2: add missing __GFP_COMP, or we leak memory.
Fixes: 7c4e983c4f3c ("net: allow gso_max_size to exceed 65536")
Reported-by: David Ahern <[email protected]>
Link: https://lore.kernel.org/netdev/[email protected]/T/
Signed-off-by: Eric Dumazet <[email protected]>
Cc: Xin Long <[email protected]>
Cc: Willem de Bruijn <[email protected]>
Cc: Coco Li <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python/stackcollapse.py')
0 files changed, 0 insertions, 0 deletions