Bugzilla: 993744 Upstream-status: Still pending upstream diff --git a/drivers/md/dm-cache-policy-mq.c b/drivers/md/dm-cache-policy-mq.c index cab6dd2..ec79c8f 100644 --- a/drivers/md/dm-cache-policy-mq.c +++ b/drivers/md/dm-cache-policy-mq.c @@ -868,7 +868,7 @@ static void mq_destroy(struct dm_cache_policy *p) struct mq_policy *mq = to_mq_policy(p); free_bitset(mq->allocation_bitset); - kfree(mq->table); + vfree(mq->table); free_entries(mq); kfree(mq); } @@ -1189,7 +1189,7 @@ static struct dm_cache_policy *mq_create(dm_cblock_t cache_size, mq->nr_buckets = next_power(from_cblock(cache_size) / 2, 16); mq->hash_bits = ffs(mq->nr_buckets) - 1; - mq->table = kzalloc(sizeof(*mq->table) * mq->nr_buckets, GFP_KERNEL); + mq->table = vzalloc(sizeof(*mq->table) * mq->nr_buckets); if (!mq->table) goto bad_alloc_table; @@ -1200,7 +1200,7 @@ static struct dm_cache_policy *mq_create(dm_cblock_t cache_size, return &mq->policy; bad_alloc_bitset: - kfree(mq->table); + vfree(mq->table); bad_alloc_table: free_entries(mq); bad_cache_alloc: