From b402f77b918087f7113873a91236d5a6868a5aba Mon Sep 17 00:00:00 2001 From: Hauke Mehrtens Date: Tue, 22 Aug 2017 00:28:08 +0200 Subject: compat: avoid usage of kvzalloc() in rhashtable.c This reverts commit 12e8fd6fd3802 ("lib/rhashtable.c: use kvzalloc() in bucket_table_alloc() when possible") from upstream kernel. Kernel versions older that 4.12 do not have kvzalloc() try to avoid the usage of this. Signed-off-by: Hauke Mehrtens Signed-off-by: Johannes Berg --- patches/lib-rhashtable.patch | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/patches/lib-rhashtable.patch b/patches/lib-rhashtable.patch index 9c262b02..35424efb 100644 --- a/patches/lib-rhashtable.patch +++ b/patches/lib-rhashtable.patch @@ -27,6 +27,19 @@ if (!tbl->locks) return -ENOMEM; for (i = 0; i < size; i++) --- -1.9.1 +@@ -226,10 +226,11 @@ static struct bucket_table *bucket_table_alloc(struct rhashtable *ht, + int i; + + size = sizeof(*tbl) + nbuckets * sizeof(tbl->buckets[0]); +- if (gfp != GFP_KERNEL) ++ if (size <= (PAGE_SIZE << PAGE_ALLOC_COSTLY_ORDER) || ++ gfp != GFP_KERNEL) + tbl = kzalloc(size, gfp | __GFP_NOWARN | __GFP_NORETRY); +- else +- tbl = kvzalloc(size, gfp); ++ if (tbl == NULL && gfp == GFP_KERNEL) ++ tbl = vzalloc(size); + + size = nbuckets; + -- cgit v1.2.3