]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commit4bec7d3ad3b509acb0397e9acce114ff8ec56713
treef305fdc53296701b966d07376edda69a3af7ec27
parent022b59cf66dbec426918871beda94897f287fe69
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