Code Review
/
kvmfornfv.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
Upgrade to 4.4.50-rt62
[kvmfornfv.git]
/
kernel
/
net
/
core
/
skbuff.c
diff --git
a/kernel/net/core/skbuff.c
b/kernel/net/core/skbuff.c
index
12780dc
..
c8d778f
100644
(file)
--- a/
kernel/net/core/skbuff.c
+++ b/
kernel/net/core/skbuff.c
@@
-4096,9
+4096,9
@@
struct sk_buff *skb_checksum_trimmed(struct sk_buff *skb,
if (!pskb_may_pull(skb_chk, offset))
goto err;
if (!pskb_may_pull(skb_chk, offset))
goto err;
-
__skb_pull
(skb_chk, offset);
+
skb_pull_rcsum
(skb_chk, offset);
ret = skb_chkf(skb_chk);
ret = skb_chkf(skb_chk);
-
__skb_push
(skb_chk, offset);
+
skb_push_rcsum
(skb_chk, offset);
if (ret)
goto err;
if (ret)
goto err;
@@
-4421,15
+4421,16
@@
int skb_vlan_push(struct sk_buff *skb, __be16 vlan_proto, u16 vlan_tci)
__skb_push(skb, offset);
err = __vlan_insert_tag(skb, skb->vlan_proto,
skb_vlan_tag_get(skb));
__skb_push(skb, offset);
err = __vlan_insert_tag(skb, skb->vlan_proto,
skb_vlan_tag_get(skb));
- if (err)
+ if (err) {
+ __skb_pull(skb, offset);
return err;
return err;
+ }
+
skb->protocol = skb->vlan_proto;
skb->mac_len += VLAN_HLEN;
skb->protocol = skb->vlan_proto;
skb->mac_len += VLAN_HLEN;
- __skb_pull(skb, offset);
- if (skb->ip_summed == CHECKSUM_COMPLETE)
- skb->csum = csum_add(skb->csum, csum_partial(skb->data
- + (2 * ETH_ALEN), VLAN_HLEN, 0));
+ skb_postpush_rcsum(skb, skb->data + (2 * ETH_ALEN), VLAN_HLEN);
+ __skb_pull(skb, offset);
}
__vlan_hwaccel_put_tag(skb, vlan_proto, vlan_tci);
return 0;
}
__vlan_hwaccel_put_tag(skb, vlan_proto, vlan_tci);
return 0;