netfilter: nf_tables: use rhashtable_lookup() instead of rhashtable_lookup_fast()
authorTaehee Yoo <ap420073@gmail.com>
Mon, 24 Sep 2018 15:39:27 +0000 (00:39 +0900)
committerPablo Neira Ayuso <pablo@netfilter.org>
Fri, 28 Sep 2018 12:28:43 +0000 (14:28 +0200)
Internally, rhashtable_lookup_fast() calls rcu_read_lock() then,
calls rhashtable_lookup(). so that in places where are guaranteed
by rcu read lock, rhashtable_lookup() is enough.

Signed-off-by: Taehee Yoo <ap420073@gmail.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
net/netfilter/nf_flow_table_core.c
net/netfilter/nft_set_hash.c

index da30444823173bbb0af1e88206c390bb369230d6..185c633b6872b1cf9b04b76f09b14ca2b4a3c5ea 100644 (file)
@@ -233,8 +233,8 @@ flow_offload_lookup(struct nf_flowtable *flow_table,
        struct flow_offload *flow;
        int dir;
 
-       tuplehash = rhashtable_lookup_fast(&flow_table->rhashtable, tuple,
-                                          nf_flow_offload_rhash_params);
+       tuplehash = rhashtable_lookup(&flow_table->rhashtable, tuple,
+                                     nf_flow_offload_rhash_params);
        if (!tuplehash)
                return NULL;
 
index 4f9c01715856e2f4f579f9576ff871eab61d659a..339a9dd1c83210ec800f043c59eb68e4d6659d95 100644 (file)
@@ -88,7 +88,7 @@ static bool nft_rhash_lookup(const struct net *net, const struct nft_set *set,
                .key     = key,
        };
 
-       he = rhashtable_lookup_fast(&priv->ht, &arg, nft_rhash_params);
+       he = rhashtable_lookup(&priv->ht, &arg, nft_rhash_params);
        if (he != NULL)
                *ext = &he->ext;
 
@@ -106,7 +106,7 @@ static void *nft_rhash_get(const struct net *net, const struct nft_set *set,
                .key     = elem->key.val.data,
        };
 
-       he = rhashtable_lookup_fast(&priv->ht, &arg, nft_rhash_params);
+       he = rhashtable_lookup(&priv->ht, &arg, nft_rhash_params);
        if (he != NULL)
                return he;
 
@@ -129,7 +129,7 @@ static bool nft_rhash_update(struct nft_set *set, const u32 *key,
                .key     = key,
        };
 
-       he = rhashtable_lookup_fast(&priv->ht, &arg, nft_rhash_params);
+       he = rhashtable_lookup(&priv->ht, &arg, nft_rhash_params);
        if (he != NULL)
                goto out;
 
@@ -217,7 +217,7 @@ static void *nft_rhash_deactivate(const struct net *net,
        };
 
        rcu_read_lock();
-       he = rhashtable_lookup_fast(&priv->ht, &arg, nft_rhash_params);
+       he = rhashtable_lookup(&priv->ht, &arg, nft_rhash_params);
        if (he != NULL &&
            !nft_rhash_flush(net, set, he))
                he = NULL;