From: Basil Gor Date: Thu, 3 May 2012 22:55:23 +0000 (+0000) Subject: vhost-net: fix handle_rx buffer size X-Git-Tag: accepted/tizen/common/20141203.182822~4675^2~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c53cff5e42a06b81495983bd01741b9a954f11f0;p=platform%2Fkernel%2Flinux-arm64.git vhost-net: fix handle_rx buffer size Take vlan header length into account, when vlan id is stored as vlan_tci. Otherwise tagged packets coming from macvtap will be truncated. Signed-off-by: Basil Gor Acked-by: Michael S. Tsirkin Signed-off-by: David S. Miller --- diff --git a/drivers/vhost/net.c b/drivers/vhost/net.c index 1f21d2a..5c17010 100644 --- a/drivers/vhost/net.c +++ b/drivers/vhost/net.c @@ -24,6 +24,7 @@ #include #include #include +#include #include @@ -283,8 +284,12 @@ static int peek_head_len(struct sock *sk) spin_lock_irqsave(&sk->sk_receive_queue.lock, flags); head = skb_peek(&sk->sk_receive_queue); - if (likely(head)) + if (likely(head)) { len = head->len; + if (vlan_tx_tag_present(head)) + len += VLAN_HLEN; + } + spin_unlock_irqrestore(&sk->sk_receive_queue.lock, flags); return len; }