summaryrefslogtreecommitdiffstats
path: root/lib/rhashtable.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rhashtable.c')
-rw-r--r--lib/rhashtable.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/lib/rhashtable.c b/lib/rhashtable.c
index ae4223e0f5bc..238c8daa9852 100644
--- a/lib/rhashtable.c
+++ b/lib/rhashtable.c
@@ -174,10 +174,7 @@ static struct bucket_table *bucket_table_alloc(struct rhashtable *ht,
174 int i; 174 int i;
175 175
176 size = sizeof(*tbl) + nbuckets * sizeof(tbl->buckets[0]); 176 size = sizeof(*tbl) + nbuckets * sizeof(tbl->buckets[0]);
177 if (gfp != GFP_KERNEL) 177 tbl = kvzalloc(size, gfp);
178 tbl = kzalloc(size, gfp | __GFP_NOWARN | __GFP_NORETRY);
179 else
180 tbl = kvzalloc(size, gfp);
181 178
182 size = nbuckets; 179 size = nbuckets;
183 180
@@ -450,7 +447,7 @@ static int rhashtable_insert_rehash(struct rhashtable *ht,
450 447
451 err = -ENOMEM; 448 err = -ENOMEM;
452 449
453 new_tbl = bucket_table_alloc(ht, size, GFP_ATOMIC); 450 new_tbl = bucket_table_alloc(ht, size, GFP_ATOMIC | __GFP_NOWARN);
454 if (new_tbl == NULL) 451 if (new_tbl == NULL)
455 goto fail; 452 goto fail;
456 453