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)
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

Simple merge