diff options
-rw-r--r-- | net/8021q/vlan_dev.c | 3 | ||||
-rw-r--r-- | net/ipv4/ip_gre.c | 2 |
2 files changed, 4 insertions, 1 deletions
diff --git a/net/8021q/vlan_dev.c b/net/8021q/vlan_dev.c index b74864889670..f2a8750bbf1d 100644 --- a/net/8021q/vlan_dev.c +++ b/net/8021q/vlan_dev.c | |||
@@ -165,6 +165,9 @@ int vlan_skb_recv(struct sk_buff *skb, struct net_device *dev, | |||
165 | 165 | ||
166 | skb_pull(skb, VLAN_HLEN); /* take off the VLAN header (4 bytes currently) */ | 166 | skb_pull(skb, VLAN_HLEN); /* take off the VLAN header (4 bytes currently) */ |
167 | 167 | ||
168 | /* Need to correct hardware checksum */ | ||
169 | skb_postpull_rcsum(skb, vhdr, VLAN_HLEN); | ||
170 | |||
168 | /* Ok, lets check to make sure the device (dev) we | 171 | /* Ok, lets check to make sure the device (dev) we |
169 | * came in on is what this VLAN is attached to. | 172 | * came in on is what this VLAN is attached to. |
170 | */ | 173 | */ |
diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c index a4c347c3b8e3..46f9d9cf7a5f 100644 --- a/net/ipv4/ip_gre.c +++ b/net/ipv4/ip_gre.c | |||
@@ -618,7 +618,7 @@ static int ipgre_rcv(struct sk_buff *skb) | |||
618 | 618 | ||
619 | skb->mac.raw = skb->nh.raw; | 619 | skb->mac.raw = skb->nh.raw; |
620 | skb->nh.raw = __pskb_pull(skb, offset); | 620 | skb->nh.raw = __pskb_pull(skb, offset); |
621 | skb_postpull_rcsum(skb, skb->mac.raw, offset); | 621 | skb_postpull_rcsum(skb, skb->h.raw, offset); |
622 | memset(&(IPCB(skb)->opt), 0, sizeof(struct ip_options)); | 622 | memset(&(IPCB(skb)->opt), 0, sizeof(struct ip_options)); |
623 | skb->pkt_type = PACKET_HOST; | 623 | skb->pkt_type = PACKET_HOST; |
624 | #ifdef CONFIG_NET_IPGRE_BROADCAST | 624 | #ifdef CONFIG_NET_IPGRE_BROADCAST |