net: skb_fclone_busy() needs to detect orphaned skb
authorEric Dumazet <edumazet@google.com>
Thu, 30 Oct 2014 17:32:34 +0000 (10:32 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 30 Oct 2014 23:58:30 +0000 (19:58 -0400)
commit39bb5e62867de82b269b07df900165029b928359
treef0cbefb0eee4eda2697c4e2fd6e0ad3ee7331f43
parent14051f0452a2c26a3f4791e6ad6a435e8f1945ff
net: skb_fclone_busy() needs to detect orphaned skb

Some drivers are unable to perform TX completions in a bound time.
They instead call skb_orphan()

Problem is skb_fclone_busy() has to detect this case, otherwise
we block TCP retransmits and can freeze unlucky tcp sessions on
mostly idle hosts.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Fixes: 1f3279ae0c13 ("tcp: avoid retransmits of TCP packets hanging in host queues")
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/skbuff.h
net/ipv4/tcp_output.c
net/xfrm/xfrm_policy.c