hv_netvsc: try linearizing big SKBs before dropping them
authorVitaly Kuznetsov <vkuznets@redhat.com>
Wed, 8 Apr 2015 15:54:06 +0000 (17:54 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 8 Apr 2015 16:27:25 +0000 (12:27 -0400)
commite88f7e078e47d4261a22e6f20a574620cbfc7a4b
treef305fdc53296701b966d07376edda69a3af7ec27
parent981a1bd85a959bb3b44e07c212ebc61c62ad7cf9
hv_netvsc: try linearizing big SKBs before dropping them

In netvsc_start_xmit() we can handle packets which are scattered around not
more than MAX_PAGE_BUFFER_COUNT-2 pages. It is, however, easy to create a
packet which is not big in size but occupies more pages (e.g. if it uses frags
on compound pages boundaries). When we drop such packet it cases sender to try
resending it but in most cases it will try resending the same packet which will
also get dropped, this will cause the particular connection to stick. To solve
the issue we can try linearizing skb.

Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/hyperv/netvsc_drv.c