]> git.proxmox.com Git - ovs.git/commitdiff
datapath: compat: drop bridge nf reset from nf_reset
authorGreg Rose <gvrose8192@gmail.com>
Wed, 9 Oct 2019 21:22:14 +0000 (14:22 -0700)
committerSimon Horman <simon.horman@netronome.com>
Fri, 18 Oct 2019 14:22:12 +0000 (16:22 +0200)
Upstream commmit:
    commit 895b5c9f206eb7d25dc1360a8ccfc5958895eb89
    Author: Florian Westphal <fw@strlen.de>
    Date:   Sun Sep 29 20:54:03 2019 +0200

    netfilter: drop bridge nf reset from nf_reset

    commit 174e23810cd31
    ("sk_buff: drop all skb extensions on free and skb scrubbing") made napi
    recycle always drop skb extensions.  The additional skb_ext_del() that is
    performed via nf_reset on napi skb recycle is not needed anymore.

    Most nf_reset() calls in the stack are there so queued skb won't block
    'rmmod nf_conntrack' indefinitely.

    This removes the skb_ext_del from nf_reset, and renames it to a more
    fitting nf_reset_ct().

    In a few selected places, add a call to skb_ext_reset to make sure that
    no active extensions remain.

    I am submitting this for "net", because we're still early in the release
    cycle.  The patch applies to net-next too, but I think the rename causes
    needless divergence between those trees.

Suggested-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Added some compat layer fixups for nf_reset_ct.  This is just a portion
of the upstream commit that applies to openvswitch.

Cc: Florian Westphal <fw@strlen.de>
Signed-off-by: Greg Rose <gvrose8192@gmail.com>
Acked-by: Yi-Hung Wei <yihung.wei@gmail.com>
Signed-off-by: Simon Horman <simon.horman@netronome.com>
acinclude.m4
datapath/linux/compat/include/linux/skbuff.h
datapath/vport-internal_dev.c

index b3e5f94690c82e5542b6b583a3d571c7746558ac..d60016f33e2770dafa96a6b8fd4a7cd73951d673 100644 (file)
@@ -742,6 +742,7 @@ AC_DEFUN([OVS_CHECK_LINUX_COMPAT], [
   OVS_FIND_PARAM_IFELSE([$KSRC/include/net/rtnetlink.h],
                         [rtnl_create_link], [extack],
                         [OVS_DEFINE([HAVE_RTNL_CREATE_LINK_TAKES_EXTACK])])
+  OVS_GREP_IFELSE([$KSRC/include/linux/skbuff.h], [nf_reset_ct])
 
   # Check for the proto_data_valid member in struct sk_buff.  The [^@]
   # is necessary because some versions of this header remove the
index 4a6ac2384c6064b5090bc0e9fa4b63b7cb071e13..63972891bf4892249654228d050da8c616f1a703 100644 (file)
@@ -452,4 +452,8 @@ static inline void skb_set_inner_ipproto(struct sk_buff *skb,
 }
 #endif
 
+#ifndef HAVE_NF_RESET_CT
+#define nf_reset_ct nf_reset
+#endif
+
 #endif
index 0318f5852b0fd38fe944541a766b1de581c88f4f..dbc2002319958e817b040f4197b295902553dfbd 100644 (file)
@@ -281,7 +281,7 @@ static netdev_tx_t internal_dev_recv(struct sk_buff *skb)
        }
 
        skb_dst_drop(skb);
-       nf_reset(skb);
+       nf_reset_ct(skb);
        secpath_reset(skb);
 
        skb->pkt_type = PACKET_HOST;