X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;ds=sidebyside;f=net%2F8021q%2Fvlan_dev.c;fp=net%2F8021q%2Fvlan_dev.c;h=0f604d227da2ba003a25256a28cf3e7de0fd0076;hb=64ba3f394c830ec48a1c31b53dcae312c56f1604;hp=da9cfe92715815d5c754eb268c2fd8f84e1467a8;hpb=be1e6109ac94a859551f8e1774eb9a8469fe055c;p=linux-2.6.git diff --git a/net/8021q/vlan_dev.c b/net/8021q/vlan_dev.c index da9cfe927..0f604d227 100644 --- a/net/8021q/vlan_dev.c +++ b/net/8021q/vlan_dev.c @@ -163,8 +163,10 @@ int vlan_skb_recv(struct sk_buff *skb, struct net_device *dev, stats->rx_packets++; stats->rx_bytes += skb->len; - /* Take off the VLAN header (4 bytes currently) */ - skb_pull_rcsum(skb, VLAN_HLEN); + skb_pull(skb, VLAN_HLEN); /* take off the VLAN header (4 bytes currently) */ + + /* Need to correct hardware checksum */ + skb_postpull_rcsum(skb, vhdr, VLAN_HLEN); /* Ok, lets check to make sure the device (dev) we * came in on is what this VLAN is attached to.