diff options
author | Pablo Neira Ayuso <pablo@netfilter.org> | 2016-11-03 05:56:43 -0400 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2016-11-03 06:53:00 -0400 |
commit | 08733a0cb7decce40bbbd0331a0449465f13c444 (patch) | |
tree | 1f206cbeae90d863b468156a5936ca5d265f8b3e /net/openvswitch/conntrack.c | |
parent | 26dfab7216291cee94d6012d06c255fcc15cd72a (diff) |
netfilter: handle NF_REPEAT from nf_conntrack_in()
NF_REPEAT is only needed from nf_conntrack_in() under a very specific
case required by the TCP protocol tracker, we can handle this case
without returning to the core hook path. Handling of NF_REPEAT from the
nf_reinject() is left untouched.
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'net/openvswitch/conntrack.c')
-rw-r--r-- | net/openvswitch/conntrack.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/net/openvswitch/conntrack.c b/net/openvswitch/conntrack.c index 31045ef44a82..9b8a028b7dad 100644 --- a/net/openvswitch/conntrack.c +++ b/net/openvswitch/conntrack.c | |||
@@ -725,12 +725,8 @@ static int __ovs_ct_lookup(struct net *net, struct sw_flow_key *key, | |||
725 | skb->nfctinfo = IP_CT_NEW; | 725 | skb->nfctinfo = IP_CT_NEW; |
726 | } | 726 | } |
727 | 727 | ||
728 | /* Repeat if requested, see nf_iterate(). */ | 728 | err = nf_conntrack_in(net, info->family, |
729 | do { | 729 | NF_INET_PRE_ROUTING, skb); |
730 | err = nf_conntrack_in(net, info->family, | ||
731 | NF_INET_PRE_ROUTING, skb); | ||
732 | } while (err == NF_REPEAT); | ||
733 | |||
734 | if (err != NF_ACCEPT) | 730 | if (err != NF_ACCEPT) |
735 | return -ENOENT; | 731 | return -ENOENT; |
736 | 732 | ||