diff options
Diffstat (limited to 'net/ipv4/geneve.c')
| -rw-r--r-- | net/ipv4/geneve.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/net/ipv4/geneve.c b/net/ipv4/geneve.c index 5a4828ba05ad..8986e63f3bda 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,12 +127,16 @@ 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 | ||
| 137 | skb_set_inner_protocol(skb, htons(ETH_P_TEB)); | 137 | skb_set_inner_protocol(skb, htons(ETH_P_TEB)); |
| 138 | 138 | ||
| 139 | return udp_tunnel_xmit_skb(rt, skb, src, dst, | 139 | return udp_tunnel_xmit_skb(rt, gs->sock->sk, skb, src, dst, |
| 140 | tos, ttl, df, src_port, dst_port, xnet, | 140 | tos, ttl, df, src_port, dst_port, xnet, |
| 141 | !csum); | 141 | !csum); |
| 142 | } | 142 | } |
| @@ -196,7 +196,7 @@ static struct sk_buff **geneve_gro_receive(struct sk_buff **head, | |||
| 196 | 196 | ||
| 197 | rcu_read_lock(); | 197 | rcu_read_lock(); |
| 198 | ptype = gro_find_receive_by_type(type); | 198 | ptype = gro_find_receive_by_type(type); |
| 199 | if (ptype == NULL) { | 199 | if (!ptype) { |
| 200 | flush = 1; | 200 | flush = 1; |
| 201 | goto out_unlock; | 201 | goto out_unlock; |
| 202 | } | 202 | } |
| @@ -230,7 +230,7 @@ static int geneve_gro_complete(struct sk_buff *skb, int nhoff, | |||
| 230 | 230 | ||
| 231 | rcu_read_lock(); | 231 | rcu_read_lock(); |
| 232 | ptype = gro_find_complete_by_type(type); | 232 | ptype = gro_find_complete_by_type(type); |
| 233 | if (ptype != NULL) | 233 | if (ptype) |
| 234 | err = ptype->callbacks.gro_complete(skb, nhoff + gh_len); | 234 | err = ptype->callbacks.gro_complete(skb, nhoff + gh_len); |
| 235 | 235 | ||
| 236 | rcu_read_unlock(); | 236 | rcu_read_unlock(); |
