aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/vxlan.c20
-rw-r--r--net/ipv4/geneve.c8
2 files changed, 14 insertions, 14 deletions
diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c
index f8528a4cf54f..fceb637efd6b 100644
--- a/drivers/net/vxlan.c
+++ b/drivers/net/vxlan.c
@@ -1713,12 +1713,6 @@ static int vxlan6_xmit_skb(struct dst_entry *dst, struct sk_buff *skb,
1713 } 1713 }
1714 } 1714 }
1715 1715
1716 skb = iptunnel_handle_offloads(skb, udp_sum, type);
1717 if (IS_ERR(skb)) {
1718 err = -EINVAL;
1719 goto err;
1720 }
1721
1722 skb_scrub_packet(skb, xnet); 1716 skb_scrub_packet(skb, xnet);
1723 1717
1724 min_headroom = LL_RESERVED_SPACE(dst->dev) + dst->header_len 1718 min_headroom = LL_RESERVED_SPACE(dst->dev) + dst->header_len
@@ -1738,6 +1732,12 @@ static int vxlan6_xmit_skb(struct dst_entry *dst, struct sk_buff *skb,
1738 goto err; 1732 goto err;
1739 } 1733 }
1740 1734
1735 skb = iptunnel_handle_offloads(skb, udp_sum, type);
1736 if (IS_ERR(skb)) {
1737 err = -EINVAL;
1738 goto err;
1739 }
1740
1741 vxh = (struct vxlanhdr *) __skb_push(skb, sizeof(*vxh)); 1741 vxh = (struct vxlanhdr *) __skb_push(skb, sizeof(*vxh));
1742 vxh->vx_flags = htonl(VXLAN_HF_VNI); 1742 vxh->vx_flags = htonl(VXLAN_HF_VNI);
1743 vxh->vx_vni = md->vni; 1743 vxh->vx_vni = md->vni;
@@ -1798,10 +1798,6 @@ int vxlan_xmit_skb(struct rtable *rt, struct sk_buff *skb,
1798 } 1798 }
1799 } 1799 }
1800 1800
1801 skb = iptunnel_handle_offloads(skb, udp_sum, type);
1802 if (IS_ERR(skb))
1803 return PTR_ERR(skb);
1804
1805 min_headroom = LL_RESERVED_SPACE(rt->dst.dev) + rt->dst.header_len 1801 min_headroom = LL_RESERVED_SPACE(rt->dst.dev) + rt->dst.header_len
1806 + VXLAN_HLEN + sizeof(struct iphdr) 1802 + VXLAN_HLEN + sizeof(struct iphdr)
1807 + (skb_vlan_tag_present(skb) ? VLAN_HLEN : 0); 1803 + (skb_vlan_tag_present(skb) ? VLAN_HLEN : 0);
@@ -1817,6 +1813,10 @@ int vxlan_xmit_skb(struct rtable *rt, struct sk_buff *skb,
1817 if (WARN_ON(!skb)) 1813 if (WARN_ON(!skb))
1818 return -ENOMEM; 1814 return -ENOMEM;
1819 1815
1816 skb = iptunnel_handle_offloads(skb, udp_sum, type);
1817 if (IS_ERR(skb))
1818 return PTR_ERR(skb);
1819
1820 vxh = (struct vxlanhdr *) __skb_push(skb, sizeof(*vxh)); 1820 vxh = (struct vxlanhdr *) __skb_push(skb, sizeof(*vxh));
1821 vxh->vx_flags = htonl(VXLAN_HF_VNI); 1821 vxh->vx_flags = htonl(VXLAN_HF_VNI);
1822 vxh->vx_vni = md->vni; 1822 vxh->vx_vni = md->vni;
diff --git a/net/ipv4/geneve.c b/net/ipv4/geneve.c
index 5a4828ba05ad..a566a2e4715b 100644
--- a/net/ipv4/geneve.c
+++ b/net/ipv4/geneve.c
@@ -113,10 +113,6 @@ int geneve_xmit_skb(struct geneve_sock *gs, struct rtable *rt,
113 int min_headroom; 113 int min_headroom;
114 int err; 114 int err;
115 115
116 skb = udp_tunnel_handle_offloads(skb, csum);
117 if (IS_ERR(skb))
118 return PTR_ERR(skb);
119
120 min_headroom = LL_RESERVED_SPACE(rt->dst.dev) + rt->dst.header_len 116 min_headroom = LL_RESERVED_SPACE(rt->dst.dev) + rt->dst.header_len
121 + GENEVE_BASE_HLEN + opt_len + sizeof(struct iphdr) 117 + GENEVE_BASE_HLEN + opt_len + sizeof(struct iphdr)
122 + (skb_vlan_tag_present(skb) ? VLAN_HLEN : 0); 118 + (skb_vlan_tag_present(skb) ? VLAN_HLEN : 0);
@@ -131,6 +127,10 @@ int geneve_xmit_skb(struct geneve_sock *gs, struct rtable *rt,
131 if (unlikely(!skb)) 127 if (unlikely(!skb))
132 return -ENOMEM; 128 return -ENOMEM;
133 129
130 skb = udp_tunnel_handle_offloads(skb, csum);
131 if (IS_ERR(skb))
132 return PTR_ERR(skb);
133
134 gnvh = (struct genevehdr *)__skb_push(skb, sizeof(*gnvh) + opt_len); 134 gnvh = (struct genevehdr *)__skb_push(skb, sizeof(*gnvh) + opt_len);
135 geneve_build_header(gnvh, tun_flags, vni, opt_len, opt); 135 geneve_build_header(gnvh, tun_flags, vni, opt_len, opt);
136 136