diff options
author | David S. Miller <davem@davemloft.net> | 2012-05-16 22:17:37 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-05-16 22:17:37 -0400 |
commit | 028940342a906db8da014a7603a0deddc2c323dd (patch) | |
tree | 688dbc38a3e218f2493d311b1d70a67668837347 /drivers/vhost/net.c | |
parent | be3eed2e96340d3c7a4d1ea1d63e7bd6095d1e34 (diff) | |
parent | 0e93b4b304ae052ba1bc73f6d34a68556fe93429 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Diffstat (limited to 'drivers/vhost/net.c')
-rw-r--r-- | drivers/vhost/net.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/vhost/net.c b/drivers/vhost/net.c index 853db7a08a2..f82a7394756 100644 --- a/drivers/vhost/net.c +++ b/drivers/vhost/net.c | |||
@@ -24,6 +24,7 @@ | |||
24 | #include <linux/if_arp.h> | 24 | #include <linux/if_arp.h> |
25 | #include <linux/if_tun.h> | 25 | #include <linux/if_tun.h> |
26 | #include <linux/if_macvlan.h> | 26 | #include <linux/if_macvlan.h> |
27 | #include <linux/if_vlan.h> | ||
27 | 28 | ||
28 | #include <net/sock.h> | 29 | #include <net/sock.h> |
29 | 30 | ||
@@ -286,8 +287,12 @@ static int peek_head_len(struct sock *sk) | |||
286 | 287 | ||
287 | spin_lock_irqsave(&sk->sk_receive_queue.lock, flags); | 288 | spin_lock_irqsave(&sk->sk_receive_queue.lock, flags); |
288 | head = skb_peek(&sk->sk_receive_queue); | 289 | head = skb_peek(&sk->sk_receive_queue); |
289 | if (likely(head)) | 290 | if (likely(head)) { |
290 | len = head->len; | 291 | len = head->len; |
292 | if (vlan_tx_tag_present(head)) | ||
293 | len += VLAN_HLEN; | ||
294 | } | ||
295 | |||
291 | spin_unlock_irqrestore(&sk->sk_receive_queue.lock, flags); | 296 | spin_unlock_irqrestore(&sk->sk_receive_queue.lock, flags); |
292 | return len; | 297 | return len; |
293 | } | 298 | } |