On Wed, May 24, 2017 at 11:50:52AM +0200, Pablo Neira Ayuso wrote:
> +static bool nft_hash_lookup(const struct net *net, const struct nft_set *set,
> + const u32 *key, const struct nft_set_ext **ext)
> +{
> + struct nft_hash *priv = nft_set_priv(set);
> + u8 genmask = nft_genmask_cur(net);
> + const struct nft_hash_elem *he;
> + u32 hash;
> +
> + hash = jhash(key, set->klen, priv->seed);
> + hash = reciprocal_scale(hash, priv->buckets);
> + hlist_for_each_entry(he, &priv->table[hash], node) {
Hm. I just noticed _rcu is missing here and everywhere in this code.
Will send a v2.
> + if (!memcmp(nft_set_ext_key(&he->ext), key, set->klen) &&
> + nft_set_elem_active(&he->ext, genmask)) {
> + *ext = &he->ext;
> + return true;
> + }
> + }
> + return false;
> +}
--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html