Commit 4e04d10c authored by Harry Yoo's avatar Harry Yoo Committed by Andrew Morton
Browse files

mm/zsmalloc: convert obj_to_page() and zs_free() to use zpdesc

Rename obj_to_page() to obj_to_zpdesc() and also convert it and its user
zs_free() to use zpdesc.

Link: https://lkml.kernel.org/r/20241216150450.1228021-10-42.hyeyoo@gmail.com


Signed-off-by: default avatarHyeonggon Yoo <42.hyeyoo@gmail.com>
Signed-off-by: default avatarAlex Shi <alexs@kernel.org>
Acked-by: default avatarSergey Senozhatsky <senozhatsky@chromium.org>
Tested-by: default avatarSergey Senozhatsky <senozhatsky@chromium.org>
Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
Cc: Minchan Kim <minchan@kernel.org>
Cc: Vishal Moola (Oracle) <vishal.moola@gmail.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
parent acaf4184
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -798,9 +798,9 @@ static void obj_to_location(unsigned long obj, struct zpdesc **zpdesc,
	*obj_idx = (obj & OBJ_INDEX_MASK);
}

static void obj_to_page(unsigned long obj, struct page **page)
static void obj_to_zpdesc(unsigned long obj, struct zpdesc **zpdesc)
{
	*page = pfn_to_page(obj >> OBJ_INDEX_BITS);
	*zpdesc = pfn_zpdesc(obj >> OBJ_INDEX_BITS);
}

/**
@@ -1462,7 +1462,7 @@ static void obj_free(int class_size, unsigned long obj)
void zs_free(struct zs_pool *pool, unsigned long handle)
{
	struct zspage *zspage;
	struct page *f_page;
	struct zpdesc *f_zpdesc;
	unsigned long obj;
	struct size_class *class;
	int fullness;
@@ -1476,8 +1476,8 @@ void zs_free(struct zs_pool *pool, unsigned long handle)
	 */
	read_lock(&pool->migrate_lock);
	obj = handle_to_obj(handle);
	obj_to_page(obj, &f_page);
	zspage = get_zspage(f_page);
	obj_to_zpdesc(obj, &f_zpdesc);
	zspage = get_zspage(zpdesc_page(f_zpdesc));
	class = zspage_class(pool, zspage);
	spin_lock(&class->lock);
	read_unlock(&pool->migrate_lock);