diff options
| author | Eric Dumazet <[email protected]> | 2013-03-14 05:40:32 +0000 |
|---|---|---|
| committer | David S. Miller <[email protected]> | 2013-03-14 15:49:45 +0000 |
| commit | 16fad69cfe4adbbfa813de516757b87bcae36d93 (patch) | |
| tree | 5b16184db33e16e398fa88ca1dcbb4f054fdaffa /net/ipv4/tcp_output.c | |
| parent | net: qmi_wwan: set correct altsetting for Gobi 1K devices (diff) | |
| download | kernel-16fad69cfe4adbbfa813de516757b87bcae36d93.tar.gz kernel-16fad69cfe4adbbfa813de516757b87bcae36d93.zip | |
tcp: fix skb_availroom()
Chrome OS team reported a crash on a Pixel ChromeBook in TCP stack :
https://code.google.com/p/chromium/issues/detail?id=182056
commit a21d45726acac (tcp: avoid order-1 allocations on wifi and tx
path) did a poor choice adding an 'avail_size' field to skb, while
what we really needed was a 'reserved_tailroom' one.
It would have avoided commit 22b4a4f22da (tcp: fix retransmit of
partially acked frames) and this commit.
Crash occurs because skb_split() is not aware of the 'avail_size'
management (and should not be aware)
Signed-off-by: Eric Dumazet <[email protected]>
Reported-by: Mukesh Agrawal <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Diffstat (limited to 'net/ipv4/tcp_output.c')
| -rw-r--r-- | net/ipv4/tcp_output.c | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c index e2b4461074da..817fbb396bc8 100644 --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c @@ -1298,7 +1298,6 @@ static void __pskb_trim_head(struct sk_buff *skb, int len) eat = min_t(int, len, skb_headlen(skb)); if (eat) { __skb_pull(skb, eat); - skb->avail_size -= eat; len -= eat; if (!len) return; |
