]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/net/geneve.c
udp: prevent skbs lingering in tunnel socket queues
[karo-tx-linux.git] / drivers / net / geneve.c
index 58efdec12f300dec69f6790c19f7cd56b10a4b22..e3f939fef6968a11179b1a5be2edf65037a07950 100644 (file)
@@ -310,15 +310,15 @@ static int geneve_udp_encap_recv(struct sock *sk, struct sk_buff *skb)
 
        /* Need Geneve and inner Ethernet header to be present */
        if (unlikely(!pskb_may_pull(skb, GENEVE_BASE_HLEN)))
-               goto error;
+               goto drop;
 
        /* Return packets with reserved bits set */
        geneveh = geneve_hdr(skb);
        if (unlikely(geneveh->ver != GENEVE_VER))
-               goto error;
+               goto drop;
 
        if (unlikely(geneveh->proto_type != htons(ETH_P_TEB)))
-               goto error;
+               goto drop;
 
        opts_len = geneveh->opt_len * 4;
        if (iptunnel_pull_header(skb, GENEVE_BASE_HLEN + opts_len,
@@ -336,10 +336,6 @@ drop:
        /* Consume bad packet */
        kfree_skb(skb);
        return 0;
-
-error:
-       /* Let the UDP layer deal with the skb */
-       return 1;
 }
 
 static struct socket *geneve_create_sock(struct net *net, bool ipv6,