FROMLIST: bpf: Remove duplicate tcp_filter hook in ipv6
authorChenbo Feng <fengc@google.com>
Fri, 9 Jun 2017 19:17:37 +0000 (12:17 -0700)
committerChenbo Feng <fengc@google.com>
Fri, 16 Jun 2017 17:27:21 +0000 (10:27 -0700)
There are two tcp_filter hooks in tcp_ipv6 ingress path currently.
One is at tcp_v6_rcv and another is in tcp_v6_do_rcv. It seems the
tcp_filter() call inside tcp_v6_do_rcv is redundent and some packet
will be filtered twice in this situation. This will cause trouble
when using eBPF filters to account traffic data.

Signed-off-by: Chenbo Feng <fengc@google.com>
Acked-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(url: http://patchwork.ozlabs.org/patch/774126/)
Bug: 30950746
Change-Id: Id4fe8cd5b7bac11a4d4141e203dd4b9fa59f3d6c

net/ipv6/tcp_ipv6.c

index 368c23a..f54c7d3 100644 (file)
@@ -1237,9 +1237,6 @@ static int tcp_v6_do_rcv(struct sock *sk, struct sk_buff *skb)
        if (skb->protocol == htons(ETH_P_IP))
                return tcp_v4_do_rcv(sk, skb);
 
-       if (tcp_filter(sk, skb))
-               goto discard;
-
        /*
         *      socket locking is here for SMP purposes as backlog rcv
         *      is currently called with bh processing disabled.