drm/rockchip: remove unused function
[linux-block.git] / drivers / net / geneve.c
index d5b1e48e0c090277b201fe266bf18a9430aae51a..1ab94b5f9bbf4a4402ddf0ea6e5b49004b1ff6f2 100644 (file)
@@ -461,6 +461,7 @@ static struct socket *geneve_create_sock(struct net *net, bool ipv6,
        if (err < 0)
                return ERR_PTR(err);
 
+       udp_allow_gso(sock->sk);
        return sock;
 }
 
@@ -891,6 +892,9 @@ static int geneve_xmit_skb(struct sk_buff *skb, struct net_device *dev,
        __be16 sport;
        int err;
 
+       if (!pskb_inet_may_pull(skb))
+               return -EINVAL;
+
        sport = udp_flow_src_port(geneve->net, skb, 1, USHRT_MAX, true);
        rt = geneve_get_v4_rt(skb, dev, gs4, &fl4, info,
                              geneve->cfg.info.key.tp_dst, sport);
@@ -985,6 +989,9 @@ static int geneve6_xmit_skb(struct sk_buff *skb, struct net_device *dev,
        __be16 sport;
        int err;
 
+       if (!pskb_inet_may_pull(skb))
+               return -EINVAL;
+
        sport = udp_flow_src_port(geneve->net, skb, 1, USHRT_MAX, true);
        dst = geneve_get_v6_dst(skb, dev, gs6, &fl6, info,
                                geneve->cfg.info.key.tp_dst, sport);