[PATCH net,stable v3] vhost: fix a few skb leaks

From: wexu
Date: Fri Dec 01 2017 - 00:54:59 EST


From: Wei Xu <wexu@xxxxxxxxxx>

Matthew found a roughly 40% tcp throughput regression with commit
c67df11f(vhost_net: try batch dequing from skb array) as discussed
in the following thread:
https://www.mail-archive.com/netdev@xxxxxxxxxxxxxxx/msg187936.html

This is v3.

v3:
- move freeing skb from vhost to tun/tap recvmsg() to not
confuse the callers.

v2:
- add Matthew as the reporter, thanks matthew.
- moving zero headcount check ahead instead of defer consuming skb
due to jason and mst's comment.
- add freeing skb in favor of recvmsg() fails.

Wei Xu (3):
vhost: fix skb leak in handle_rx()
tun: free skb in early errors
tap: free skb if flags error

drivers/net/tap.c | 6 +++++-
drivers/net/tun.c | 14 +++++++++++---
drivers/vhost/net.c | 20 ++++++++++----------
3 files changed, 26 insertions(+), 14 deletions(-)

--
1.8.3.1