浏览代码

mm/zsmalloc: allocate exactly size of struct zs_pool

In zs_create_pool(), we allocate memory more then sizeof(struct zs_pool)
  ovhd_size = roundup(sizeof(*pool), PAGE_SIZE);

This patch allocate memory of exactly needed size.

Signed-off-by: Ganesh Mahendran <opensource.ganesh@gmail.com>
Acked-by: Minchan Kim <minchan@kernel.org>
Cc: Nitin Gupta <ngupta@vflare.org>
Cc: Dan Streetman <ddstreet@ieee.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Ganesh Mahendran 10 年之前
父节点
当前提交
181366561a
共有 1 个文件被更改,包括 2 次插入3 次删除
  1. 2 3
      mm/zsmalloc.c

+ 2 - 3
mm/zsmalloc.c

@@ -979,12 +979,11 @@ static bool can_merge(struct size_class *prev, int size, int pages_per_zspage)
  */
  */
 struct zs_pool *zs_create_pool(gfp_t flags)
 struct zs_pool *zs_create_pool(gfp_t flags)
 {
 {
-	int i, ovhd_size;
+	int i;
 	struct zs_pool *pool;
 	struct zs_pool *pool;
 	struct size_class *prev_class = NULL;
 	struct size_class *prev_class = NULL;
 
 
-	ovhd_size = roundup(sizeof(*pool), PAGE_SIZE);
-	pool = kzalloc(ovhd_size, GFP_KERNEL);
+	pool = kzalloc(sizeof(*pool), GFP_KERNEL);
 	if (!pool)
 	if (!pool)
 		return NULL;
 		return NULL;