[PATCH 23/23] mm/zsmalloc: introduce zpdesc_clear_first() helper

From: alexs
Date: Tue Jul 30 2024 - 08:28:23 EST


From: Alex Shi <alexs@xxxxxxxxxx>

Like the zpdesc_set_first(), introduce zpdesc_clear_first() helper for
ClearPagePrivate(), then clean up a 'struct page' usage in
reset_zpdesc().

Signed-off-by: Alex Shi <alexs@xxxxxxxxxx>
To: linux-kernel@xxxxxxxxxxxxxxx
To: linux-mm@xxxxxxxxx
To: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
To: Sergey Senozhatsky <senozhatsky@xxxxxxxxxxxx>
To: Minchan Kim <minchan@xxxxxxxxxx>
---
mm/zsmalloc.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c
index 50ce4a3b8279..731055ccef23 100644
--- a/mm/zsmalloc.c
+++ b/mm/zsmalloc.c
@@ -259,6 +259,11 @@ static inline void zpdesc_set_first(struct zpdesc *zpdesc)
SetPagePrivate(zpdesc_page(zpdesc));
}

+static inline void zpdesc_clear_first(struct zpdesc *zpdesc)
+{
+ ClearPagePrivate(zpdesc_page(zpdesc));
+}
+
static inline void zpdesc_inc_zone_page_state(struct zpdesc *zpdesc)
{
inc_zone_page_state(zpdesc_page(zpdesc), NR_ZSPAGES);
@@ -844,10 +849,8 @@ static inline bool obj_allocated(struct zpdesc *zpdesc, void *obj,

static void reset_zpdesc(struct zpdesc *zpdesc)
{
- struct page *page = zpdesc_page(zpdesc);
-
__zpdesc_clear_movable(zpdesc);
- ClearPagePrivate(page);
+ zpdesc_clear_first(zpdesc);
zpdesc->zspage = NULL;
zpdesc->next = NULL;
reset_first_obj_offset(zpdesc);
--
2.43.0