]> git.baikalelectronics.ru Git - kernel.git/commit
tcp: fix skb_availroom()
authorEric Dumazet <edumazet@google.com>
Thu, 14 Mar 2013 05:40:32 +0000 (05:40 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 14 Mar 2013 15:49:45 +0000 (11:49 -0400)
commit2e94bb55257c39a5c19062ccd914163b40083c8c
tree5b16184db33e16e398fa88ca1dcbb4f054fdaffa
parent5fb61954e18d2074a2d475c1cd0fc838bc812ce8
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 1fd1d3a9460ff (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 10a89e3ac79 (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 <edumazet@google.com>
Reported-by: Mukesh Agrawal <quiche@chromium.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/skbuff.h
net/ipv4/tcp.c
net/ipv4/tcp_output.c