diff options
Diffstat (limited to 'net/ipv4/geneve.c')
-rw-r--r-- | net/ipv4/geneve.c | 8 |
1 files changed, 4 insertions, 4 deletions
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 | ||