Commit 2d57eb9e authored by Harry Yoo's avatar Harry Yoo Committed by Andrew Morton
Browse files

mm/zsmalloc: convert location_to_obj() to take zpdesc

As all users of location_to_obj() now use zpdesc, convert
location_to_obj() to take zpdesc.

Link: https://lkml.kernel.org/r/20241216150450.1228021-14-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 7f0b0c66
Loading
Loading
Loading
Loading
+6 −7
Original line number Diff line number Diff line
@@ -804,15 +804,15 @@ static void obj_to_zpdesc(unsigned long obj, struct zpdesc **zpdesc)
}

/**
 * location_to_obj - get obj value encoded from (<page>, <obj_idx>)
 * @page: page object resides in zspage
 * location_to_obj - get obj value encoded from (<zpdesc>, <obj_idx>)
 * @zpdesc: zpdesc object resides in zspage
 * @obj_idx: object index
 */
static unsigned long location_to_obj(struct page *page, unsigned int obj_idx)
static unsigned long location_to_obj(struct zpdesc *zpdesc, unsigned int obj_idx)
{
	unsigned long obj;

	obj = page_to_pfn(page) << OBJ_INDEX_BITS;
	obj = zpdesc_pfn(zpdesc) << OBJ_INDEX_BITS;
	obj |= obj_idx & OBJ_INDEX_MASK;

	return obj;
@@ -1358,7 +1358,7 @@ static unsigned long obj_malloc(struct zs_pool *pool,
	kunmap_local(vaddr);
	mod_zspage_inuse(zspage, 1);

	obj = location_to_obj(zpdesc_page(m_zpdesc), obj);
	obj = location_to_obj(m_zpdesc, obj);
	record_obj(handle, obj);

	return obj;
@@ -1845,8 +1845,7 @@ static int zs_page_migrate(struct page *newpage, struct page *page,

			old_obj = handle_to_obj(handle);
			obj_to_location(old_obj, &dummy, &obj_idx);
			new_obj = (unsigned long)location_to_obj(zpdesc_page(newzpdesc),
								obj_idx);
			new_obj = (unsigned long)location_to_obj(newzpdesc, obj_idx);
			record_obj(handle, new_obj);
		}
	}