]> git.itanic.dy.fi Git - linux-stable/commit
tcp: fix skb_availroom()
authorEric Dumazet <edumazet@google.com>
Thu, 14 Mar 2013 05:40:32 +0000 (05:40 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 28 Mar 2013 19:11:53 +0000 (12:11 -0700)
commitb6da578e2a610a64e89f2a983f7675eb301c5d35
treee9a01ac902578dcb3c0cca6b9126e294d02942a7
parent6a2d122cdd939e33279baf351c7cbf12c50eaeb5
tcp: fix skb_availroom()

[ Upstream commit 16fad69cfe4adbbfa813de516757b87bcae36d93 ]

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 <edumazet@google.com>
Reported-by: Mukesh Agrawal <quiche@chromium.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
include/linux/skbuff.h
net/ipv4/tcp.c
net/ipv4/tcp_output.c