diff options
author | Thomas Graf <tgraf@suug.ch> | 2014-11-13 13:45:46 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-11-13 15:18:40 -0500 |
commit | 6eba82248ef47fd478f940a418429e3ec95cb3db (patch) | |
tree | 77e82bd157c6b164347f02ba6c33e5abe4860f86 /net/netfilter/nft_hash.c | |
parent | 64bb7e9949c03bff9463c40bfa740f611fb5500d (diff) | |
download | linux-stable-6eba82248ef47fd478f940a418429e3ec95cb3db.tar.gz linux-stable-6eba82248ef47fd478f940a418429e3ec95cb3db.tar.bz2 linux-stable-6eba82248ef47fd478f940a418429e3ec95cb3db.zip |
rhashtable: Drop gfp_flags arg in insert/remove functions
Reallocation is only required for shrinking and expanding and both rely
on a mutex for synchronization and callers of rhashtable_init() are in
non atomic context. Therefore, no reason to continue passing allocation
hints through the API.
Instead, use GFP_KERNEL and add __GFP_NOWARN | __GFP_NORETRY to allow
for silent fall back to vzalloc() without the OOM killer jumping in as
pointed out by Eric Dumazet and Eric W. Biederman.
Signed-off-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/netfilter/nft_hash.c')
-rw-r--r-- | net/netfilter/nft_hash.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/netfilter/nft_hash.c b/net/netfilter/nft_hash.c index 3f75aaaf9d06..1e316ce4cb5d 100644 --- a/net/netfilter/nft_hash.c +++ b/net/netfilter/nft_hash.c @@ -65,7 +65,7 @@ static int nft_hash_insert(const struct nft_set *set, if (set->flags & NFT_SET_MAP) nft_data_copy(he->data, &elem->data); - rhashtable_insert(priv, &he->node, GFP_KERNEL); + rhashtable_insert(priv, &he->node); return 0; } @@ -88,7 +88,7 @@ static void nft_hash_remove(const struct nft_set *set, pprev = elem->cookie; he = rht_dereference((*pprev), priv); - rhashtable_remove_pprev(priv, he, pprev, GFP_KERNEL); + rhashtable_remove_pprev(priv, he, pprev); synchronize_rcu(); kfree(he); |