On Mon, Jun 30, 2025 at 02:59:47PM +0200, David Hildenbrand wrote: > Let the page freeing code handle clearing the page type. > > Acked-by: Zi Yan <z...@nvidia.com> > Reviewed-by: Sergey Senozhatsky <senozhat...@chromium.org> > Acked-by: Harry Yoo <harry....@oracle.com> > Signed-off-by: David Hildenbrand <da...@redhat.com>
On basis of sanity of UINT_MAX thing: Reviewed-by: Lorenzo Stoakes <lorenzo.stoa...@oracle.com> > --- > mm/zpdesc.h | 5 ----- > mm/zsmalloc.c | 3 +-- > 2 files changed, 1 insertion(+), 7 deletions(-) > > diff --git a/mm/zpdesc.h b/mm/zpdesc.h > index 5cb7e3de43952..5763f36039736 100644 > --- a/mm/zpdesc.h > +++ b/mm/zpdesc.h > @@ -163,11 +163,6 @@ static inline void __zpdesc_set_zsmalloc(struct zpdesc > *zpdesc) > __SetPageZsmalloc(zpdesc_page(zpdesc)); > } > > -static inline void __zpdesc_clear_zsmalloc(struct zpdesc *zpdesc) > -{ > - __ClearPageZsmalloc(zpdesc_page(zpdesc)); > -} > - > static inline struct zone *zpdesc_zone(struct zpdesc *zpdesc) > { > return page_zone(zpdesc_page(zpdesc)); > diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c > index 7f1431f2be98f..f98747aed4330 100644 > --- a/mm/zsmalloc.c > +++ b/mm/zsmalloc.c > @@ -880,7 +880,7 @@ static void reset_zpdesc(struct zpdesc *zpdesc) > ClearPagePrivate(page); > zpdesc->zspage = NULL; > zpdesc->next = NULL; > - __ClearPageZsmalloc(page); > + /* PageZsmalloc is sticky until the page is freed to the buddy. */ > } > > static int trylock_zspage(struct zspage *zspage) > @@ -1055,7 +1055,6 @@ static struct zspage *alloc_zspage(struct zs_pool *pool, > if (!zpdesc) { > while (--i >= 0) { > zpdesc_dec_zone_page_state(zpdescs[i]); Maybe for consistency put a /* PageZsmalloc is sticky until the page is freed to the buddy. */ comment here also? > - __zpdesc_clear_zsmalloc(zpdescs[i]); > free_zpdesc(zpdescs[i]); > } > cache_free_zspage(pool, zspage); > -- > 2.49.0 >