]> 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)
commitf8b2108792fd9d5fc2d483121452fc1a5a4bdc93
treef305fdc53296701b966d07376edda69a3af7ec27
parent60ed3d4b3401a40e446284a045e85a60b7683494
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